C语言中有符号基本整型[signed]int 取值范围(-32768??32767)是怎么算出来的?
C语言中有符号基本整型[signed]int 取值范围(-32768??32767)是怎么算出来的?
日期:2019-11-13 10:50:47 人气:3
以最高位为符号位,二进制原码最大为0111111111111111=2的15次方减1=32767最小为1111111111111111=-2的15次方减1=-32767。
此时0有两种表示方法,即正0和负0:0000000000000000=1000000000000000=0所以,二进制原码表示时,范围是-32767~-0和0~32767,因为有两个零的存在,所以不同的数值个数一共只有2的16次方减1个,比16位二进制能够提供的2的16次方个编码少1个。
但是计算机中采用二进制补码存储数据,即正数编码不