2011年计算机二级C语言精编教程第二章(3)

发布时间:2011-09-16 共2页

导读:通常把一个字节中的最右边一位称为最低位,最左边一位称为最高位。对于一个有符号整数,其中最高位(最左边的一位)用来存放整数的符号,称为符号位。若是正整数,最高位放置0;若是负整数,最高位放置1。

  2.3.4 整数在内存中的存储形式

  计算机中,内存储器的最小存储单位称为“位(bit)”。由于只能存放0或1,因此称为二进制位。大多数计算机把8个二进制位组成一个“字节(byte)”,并给每个字节分配一个地址。若干字节组成一个“字(word)”,用一个“字”来存放一条机器指令或一个数据。一个字含多少个字节随机器的不同而不同。如果一台计算机以两个字节(16个二进制位)来存放一条机器指令,则称此计算机的字长为16位;如果以四个字节(32个二进制位)来存放一条机器指令,则称此计算机的字长为32位。

  通常把一个字节中的最右边一位称为最低位,最左边一位称为最高位。对于一个有符号整数,其中最高位(最左边的一位)用来存放整数的符号,称为符号位。若是正整数,最高位放置0;若是负整数,最高位放置1。

  一、正整数

  当用两个字节存放一个short类型正整数时,例如正整数5,其在内存中的二进制码为:

  0000000000000101

  对于正整数的这种存储形式称为用“原码”形式存放。因此用两个字节存放short类型的最大正整数是:

  0111111111111111

  它的值为32767。为简单起见,若一个字节能够正确表示一个整数时,本书则用一个字节表示。

  二、负整数

  1.负整数在内存中是以“补码”形式存放的。

  取某个二进制数的补码,例如10000101(十进制数-5)的补码,步骤如下:

  (1)求原码的反码。把原码除符号位之外的二进制码按位取反,即把1变成0,0变成1,即得到该原码的反码。例如10000101的反码为111110100。

  (2)把所得的反码加1,即得到原码的补码。因此11111010加1得11111011,这就是-5在内存中的二进制码。若用两个字节表示,即为:

  1111111111111011

  2.把内存中以补码形式存放的二进制码转化成十进制的负整数,步骤如下:

  (1)先对除符号位之外的各位取反。例如有补码11111010,取反后为10000101。

  (2)将所得二进制数转换成十进制数。例如,10000101的十进制数为-5。

  (3)对所求得的数再减1,即为-6。

  通过以上分析可知,由两个字节存放的最小整数是1000000000000000,它对应的十进制数为-32768,而-1在内存中存放的二进制码为1111111111111111。

  三、无符号整数

  用两个字节存放一个整数时,若说明为无符号整数,则最高位不再用来存放整数的符号,16个二进制位全部用来存放整数,因此无符号整数不可能是负数。这时,若内存中存放的16个二进制位全部为1,则它所代表的整数就不再是-1,而是65535。

  

百分百考试网 考试宝典

立即免费试用