C语言中short整型数据的范围-32768----32767是中的-32768是如何确定的

2024-12-17 19:07:10
推荐回答(4个)
回答1:

short 占用内存空间2个字节,也就是16个二进制位。

表示负数时,最高位为符号位(负数的符号位为1),最小的负数为1000 0000 0000 0000 ,但是在计算机中负数是用补码(符号位不变,其余位取反,然后加1)表示的,人们规定1000 0000 0000 0000的补码为-32768 ,所以在补码系统中最小的是-32768

表示正数时,最高位为符号位(正数的符号位为0),最大的正数为0111 1111 1111 1111 即2^15 - 1 = 32767

回答2:

short整形在32位PC上是2个字节表示的,每个字节是8个二进制比特,一共就是16个比特
16个比特,能表示的数的个数是 0 ~ 2^16-1,即0 ~ 65535共65536个,如果表示正负整数各一半,那就是负整数-32768 ~ -1,共32768个,0 一个,正整数 1 ~ 32767 共32767个,一共65536个。
不知道我说明白了没有。

回答3:

计算机中间是用补码表示二进制数的,一个整形是两个字节,一个字节是八位二进制数,所以一个整形数是一个16位的二进制数,出去一个符号位,数值位是15位,而用补码的话,下限就是负的二的十五次方,上限就是2的十五次方减一

回答4:

①short 占用内存空间2个字节,也就是16个二进制位

②每个二进制位仅能表示两种可能,2^16 = 65536 = 32767- (-32768) + 1

③类似的,unsigned char 能存储的是0~255范围 因为是一个字节空间。