VS2015中一元负运算符应用于无符号类型的原因和解决 原因: 这一问题是由于编译器SDL安全检查认为这一操作(通常是为无符号整形取负的操作)无效而产生的 这里我们假设定义一个数值为int INT,在32位机上面取值范围是-2147483648~+2147483647, INT变量在后面会取负,比如Temp = -INT, 编译器认为INT有可能大于2147483647...
//int n = -2147483648; // 错误 1 error C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型 int i = 128; cout << "int" << endl; cout << '+' << i << " : "; cout << bitset<32>(i) << endl; cout << -i << " : "; cout << bitset<32>(-i) << endl...
system("pause");return0; } 测试用例里用到的数据是-2147483648,然后报错error C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型 这是因为int的最小值是-2147483648,最大值是2147483647,但是我们不能用int n = -2147483648。因为编译器(VS2013)在看到int n = -2147483648;的时候,首先判断2147483648 >...
元负运算符应用于无符号类型,结果还是无符号 翻译结果2复制译文编辑译文朗读译文返回顶部 被应用到未签署的类型的 unary 短处操作员,结果还未签署 翻译结果3复制译文编辑译文朗读译文返回顶部 一元负运算符应用于无符号类型,结果仍无符号 翻译结果4复制译文编辑译文朗读译文返回顶部 ...
一.error C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型1.报错原因由于编译器SDL安全检查认为这一操作(通常是为无符号整形取负的操作)无效而产生的。这里我们假设定义一个数值为 int INT,在 32 位机上面取值范是 -2147483648~+2147483647; 比如Temp = -INT,编译器认为 INT 有可能大于 2147483647,...