Ugd*_*han 27 integer programming-languages numeric-limits
n-bit整数的最大值是2 n -1.为什么我们有"减1"?为什么最大只有2 n?
ten*_*our 66
这-1是因为整数从0开始,但我们的计数从1开始.
因此,2^32-1是32位无符号整数(32位二进制数字)的最大值.2^32是可能值的数量.
为简化原因,请查看十进制.10^2-1是2位十进制数的最大值(99).因为我们直观的人类计数从1开始,但整数是从0开始的,10^2是值的数量(100).
Mar*_*ahn 25
2^32 在二进制:
1 00000000 00000000 00000000 00000000
Run Code Online (Sandbox Code Playgroud)
2^32 - 1 在二进制:
11111111 11111111 11111111 11111111
Run Code Online (Sandbox Code Playgroud)
如您所见,2^32取33位,而是位整数2^32 - 1的最大值32.
这里看似"一个一个"错误的原因是最低位代表一个而不是两个.所以第一位实际上2^0是第二位2^1,等等......