标题:这个结果为什么是-11?
只看楼主
飞天大烧卖
Rank: 2
等 级:论坛游民
帖 子:45
专家分:27
注 册:2020-3-26
结帖率:100%
已结贴  问题点数:20 回复次数:6 
这个结果为什么是-11?

如图所示
#include<iostream>
int main()
{
    unsigned short a = 10;
    std::cout << (~a);
}
搜索更多相关主题的帖子: short std unsigned cout 结果 
2020-04-26 15:58
yiyue123
Rank: 2
等 级:论坛游民
威 望:1
帖 子:78
专家分:78
注 册:2018-6-18
得分:10 
a + ~a = -1
举个例子, 00000001 + ~(00000001) = 00000001 + 11111110 = 11111111 = -1
2020-04-26 16:10
yiyue123
Rank: 2
等 级:论坛游民
威 望:1
帖 子:78
专家分:78
注 册:2018-6-18
得分:0 
忘了看题了.....
使用 g++ 的话,输出是4294967285
我使用 MSVC 的话,和你一样。

2020-04-26 16:15
yiyue123
Rank: 2
等 级:论坛游民
威 望:1
帖 子:78
专家分:78
注 册:2018-6-18
得分:0 
忘了看题了.....
使用 g++ 的话,输出是4294967285
我使用 MSVC 的话,和你一样。

2020-04-26 16:19
yiyue123
Rank: 2
等 级:论坛游民
威 望:1
帖 子:78
专家分:78
注 册:2018-6-18
得分:0 
很抱歉.....
g++ ,和 msvc 的结果都应该是 -11。(我在 g++ 编译的那个中使用的是 unsigned int)
~ 运算符作用对象是 int 型,用在 unsigned short 上存在 类型提升。
2020-04-26 16:24
hbccc
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:108
专家分:315
注 册:2020-2-18
得分:10 
c++?不懂
2020-04-26 19:33
飞天大烧卖
Rank: 2
等 级:论坛游民
帖 子:45
专家分:27
注 册:2020-3-26
得分:0 
回复 5楼 yiyue123
客气啦,多谢
2020-04-27 11:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501269-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.118129 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved