c程序中基本整型的取值范围:-32768~32767是怎么算出来的?
来源:    发布时间: 2019-08-19 09:59   33 次浏览   大小:  16px  14px  12px
c程序中基本整型的取值范围:-32768~32767是怎么算出来的?

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  int(整型)在你那个版本里是占用两个字节来存储的,每个字节8位,也就是16位的2进制,大家知道这样一个2进制数总是对应着一个正数,但是要表示正数和负数怎么办呢?聪明的科学家在限制的2进制数位数的前提下采取了补码(算法及详细见“补码”百度百科)的形式来存储负数,第一位是符号位,也就是用它来表明这个数的符号(正数:0 负数:1)所以int型的最大正数为1(15个1),其取值为2(15)-1,就是2的15次方减一,即32768-1=32767。最小负数:0,按照补码的运算,得这个2进制数对应的十进制为-32768,这样也解释了为什么最大正数与最小负数的绝对值差1

  整型在你那个版本里是占用两个字节来存储的,每个字节8位,也就是16位的2进制,大家知道这样一个2进制数总是对应着一个正数。

  但是要表示正数和负数该怎么办,聪明的科学家在限制的2进制数位数的前提下采取了补码(算法及详细见补码)的形式来存储负数。

  第一位是符号位,也就是用它来表明这个数的符号(正数:0 负数:1)所以int型的最大正数为1(15个1),其取值为2(15)-1,就是2的15次方减一,即32768-1=32767。

  最小负数:0,按照补码的运算,得这个2进制数对应的十进制为-32768,这样也解释了为什么最大正数与最小负数的绝对值差1。

  展开全部“基本整型”是16位长度的整形,除去最高位的符号位,2^15=32768,因0是正数,从0开始到32767就完了。剩下的一半是复数。