主题:为什么我想输出2^32却输出一个0
_超.C
[专家分:10] 发布于 2011-05-21 16:45:00
我用的unsigned long型,不是有32位吗?为什么输出不了2^32,?
输出2^31也会输出一个负数
回复列表 (共3个回复)
沙发
bruceteen [专家分:42660] 发布于 2011-05-21 17:15:00
两个问题都蛮搞笑的
32位当然输出不了2^32,没有为什么。比如假设是1bit,那么就可以表示0和1,即表达不了2^1
你把无符号数输出成负数,你觉得是数本身错了,还是你输出错了?
板凳
cgl_lgs [专家分:21040] 发布于 2011-05-21 23:46:00
32位能表示最大的无符号数是2^32-1。。。
输出无符号数要用%u。
第一个问题如果你想不明白就想想这个等效问题:3位十进制数能表达的最大数是多少?你肯定不会说,我能存3位十进制的为什么存不了10^3:)
3 楼
_超.C [专家分:10] 发布于 2011-05-27 17:00:00
哦 原来如此 我sb了
我来回复