回 帖 发 新 帖 刷新版面

主题:为什么我想输出2^32却输出一个0

我用的unsigned long型,不是有32位吗?为什么输出不了2^32,?
输出2^31也会输出一个负数

回复列表 (共3个回复)

沙发

两个问题都蛮搞笑的
32位当然输出不了2^32,没有为什么。比如假设是1bit,那么就可以表示0和1,即表达不了2^1
你把无符号数输出成负数,你觉得是数本身错了,还是你输出错了?

板凳

32位能表示最大的无符号数是2^32-1。。。
输出无符号数要用%u。

第一个问题如果你想不明白就想想这个等效问题:3位十进制数能表达的最大数是多少?你肯定不会说,我能存3位十进制的为什么存不了10^3:)

3 楼

哦  原来如此  我sb了

我来回复

您尚未登录,请登录后再回复。点此登录或注册