看看以下片段:
#include <iostream>
#include <cstdint>
#include <boost/type_index.hpp>
using boost::typeindex::type_id_with_cvr;
int main(int argc, char** argv)
{
constexpr uint16_t b = 2;
constexpr uint16_t c = 3;
constexpr const auto bc = b * c;
std::cout << "b: " << type_id_with_cvr<decltype(b)>().pretty_name() << std::endl;
std::cout << "b * c: " << type_id_with_cvr<decltype(bc)>().pretty_name() << std::endl;
}
结果如下:
无符号短常量
b*c:int-const
为什么将两个非单精度整数相乘会得到一个整数?
编译器:g 5.4.0
无符号short值在乘法之前隐式转换为int。
short和
char被视为“存储类型”,并在进行计算之前隐式转换为int。这就是为什么
unsigned char x = 255, y = 1;
printf("%i\n", x+y); // you get 256, not 0
有人请解释一下。为什么下面的程序产生16个?
我有一个PySpark数据帧,df1,看起来像: 我有第二个PySpark数据帧,df2 我想将df1的所有列(我有两列以上)与客户ID上的df2连接值相乘
我正在尝试将两个EditText相乘,两个editthours和editWage并在TextView(gross)中显示结果。非常感谢任何帮助 该应用程序崩溃于 logcat
该方法通过用户的输入获取给定数据集中的两个最大整数,并计算它们的乘积。它对每个输入都很有效,直到我尝试了两个整数和的数组,它返回。 这是我的Java方法: 这是我的方法:
问题内容: 我目前正在编写一个小的下载管理器,尝试以百分比计算下载进度时会得到一个有趣的输出。这是我用来计算的: 是一个int(它计算从中读取的总字节数),并且是下载文件的长度(以字节为单位)。 只需少量下载即可很好地工作。但是,当我使用较大的文件(40MB)时,它开始制作有趣的东西。计算的输出如下所示: 我不知道为什么,但是计算结果为负。 由于正常的整数应该可以包含2 31 -1的数字,因此这不
如果一个表达式包含任何整数大小或更小的内容,其结果总是整数,即使两个字节之和适合一个字节。 为什么我们在一个字节中添加最后两个字节时会发生这种情况?没有编译器错误。