编程论坛
注册
登录
编程论坛
→
C语言论坛
这个结果为什么是-11?
飞天大烧卖
发布于 2020-04-26 15:58, 2585 次点击
只有本站会员才能查看附件,请
登录
如图所示
#include<iostream>
int main()
{
unsigned short a = 10;
std::cout << (~a);
}
6 回复
#2
yiyue123
2020-04-26 16:10
a + ~a = -1
举个例子, 00000001 + ~(00000001) = 00000001 + 11111110 = 11111111 = -1
#3
yiyue123
2020-04-26 16:15
忘了看题了.....
使用 g++ 的话,输出是4294967285
我使用 MSVC 的话,和你一样。
只有本站会员才能查看附件,请
登录
#4
yiyue123
2020-04-26 16:19
忘了看题了.....
使用 g++ 的话,输出是4294967285
我使用 MSVC 的话,和你一样。
只有本站会员才能查看附件,请
登录
#5
yiyue123
2020-04-26 16:24
很抱歉.....
g++ ,和 msvc 的结果都应该是 -11。(我在 g++ 编译的那个中使用的是 unsigned int)
~ 运算符作用对象是 int 型,用在 unsigned short 上存在 类型提升。
#6
hbccc
2020-04-26 19:33
c++?不懂
#7
飞天大烧卖
2020-04-27 11:00
回复 5楼 yiyue123
客气啦,多谢
1