353500315 发表于 2020-2-22 16:52:01

unsigned int的数的范围为什么会是0到2的三十二次方还要减一,为什么还要减一。

#include <stdio.h>

void main()
{
        printf("%d\n",sizeof(unsigned long));
}
我使用的这个求出的字节数,然后又用字节数求出的数的范围,但视屏上说求出的范围是0到2的三十二次方还要减一,我不明白为什么要减一。
请各位对我说一下。
找个大哥,有没有,能教我学这个的,希望那个找一个负责任的师傅。{:9_228:}

人造人 发表于 2020-2-22 16:56:18

因为是从0开始算的
这是6个数 0 1 2 3 4 5

2^32 = 4294967296
范围是 0 ~ 4294967295

wp231957 发表于 2020-2-22 19:38:54

寄存器全1时就是2**n-1
页: [1]
查看完整版本: unsigned int的数的范围为什么会是0到2的三十二次方还要减一,为什么还要减一。