16/32位数,表示范围

前言

XX位二进制数,表示的数的范围是多少呢,疑惑。

一 16位数,表示范围。

16位无符号二进制数能表示2^16个数,表示范围是0~ 65535;而有符号16位二进制,有1位符号位,表示范围是-32768~+32767。

之所以是65535,是因为0也是一位,0-65535就是65536个了,即2^16

有符号就是有一位是符号位,当符号位为0时,有15位表示数,0-32767共32768个。当符号位为1时,-32768

二 32位补码表示的数,1位符号位,数的表示范围

因为十进制带符号,所以有一位符号位,数值范围是31位

最大正整数 2^32-1
最大负整数 - (2^32-1)
所以它的范围是-(2^32-1)2^32-1
2^31是它的最大位表示的数,最大整数是31位全为1,所以是2^32-1

最大正整数 2^31-1
最大负整数 - (2^31)
所以它的范围是-(2^31)2^31-1

参考资料

[1] bat67. 8位有符号数的补码表示范围. CSDN博客. 2017.
https://blog.csdn.net/bat67/article/details/75194627

你可能感兴趣的:(C/C++,补码,二进制)