问,unsigned int n=4294967290 按%d输出的结果为什么等于 -6 ???奇怪耶

[复制链接]
查看11 | 回复2 | 2013-3-24 11:51:04 | 显示全部楼层 |阅读模式
unsigned int 的最大值是 4294967295, 这可以通过输出 cout<<(unsigned int)(0-1)来测试那么 4294967290 就刚好是0翻转 -6 位得到, 因此无符号的 4294967290 就相当于有符号的 -6,它们的二进制表示是一样的,用 %d 是有符号输出,用 %u 是无符号输出...
回复

使用道具 举报

千问 | 2013-3-24 11:51:04 | 显示全部楼层
%d是带符号的%u才是无符号的...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行