您的位置:首页 > 其它

C 关于unsigned int compzero = ~0;

2013-04-24 10:40 197 查看
unsigned int zero = 0; 

unsigned int compzero = 0xFFFF; 

/*1's complement of zero */ 

对于一个int型不是16位的处理器为说,上面的代码是不正确的。应编写如下: 

unsigned int compzero = ~0; 

为什么啊?

网友回复:unsigned int compzero = 0xFFFF; 

只写了2个字节,16位的才符合 

32位的可以写: 

unsigned int compzero = 0xFFFFFFFF; 

但unsigned int compzero = ~0;更安全,不管有多少位,直接取反,把所有的0都变成1了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C 32位