1)存储无符号整数首先将整数变成二进制数
如果二进制位数不足n位,则在二进制数的左边补0,使它得的总位数为n位。如果位数大于n,该整数无法存储。导致溢出的情况发生。
例 3.1:将7存储在8位存储单元中想将整数转换为二进制数111
加5个0使总的位数为8,00000111
再将该整数保存在存储单元中。
2) 译解无符号整数
输出设备译解内存中位模式的位串并转换为一个十进制的无符号整数
3) 溢出
在n为存储单元中,可以存储的无符号整数仅为0到2n - 1之间
4)无符号整数的应用
无符号整数表示法可以调高存储的效率,因为不必存储整数的符号。计数
寻址
为其他数据类型排序
2. 符号加绝对值表示法
此方法中,用于无符号整数的有效范围(0到2n - 1)被分成2个相等的子范围。前半个表示正整数,后半个表示负整数。
用符号加绝对值格式存储一个整数,需要用1个二进制位表示符号(0表示正,1表示负)。这就意味着在一个8位存储单元中,可以仅用7位表示数字的绝对值(不带符号)。在n位单元可存储的数字范围是 -(2n-1 - 1)至 +(2n-1 - 1)
3. 二进制补码表示法
用来存储位于n位存储单元中的有符号整数。
无符号整数的有效范围(0到2n - 1)被分为2个相等的子范围:非负整数
负整数
例如:如果n = 4, 该范围是0000到1111。这个范围分为两半: 0000到0111以及1000到1111(此处书写的是0000到0110以及0111到1111,应该是错误的)
1) 两种运算反码或取一个整数的反码
补码或取一个证书的补码
2) 以二进制补码格式存储整数将整数变成n位的二进制数
如果整数是正数或0,以其原样存储;如果是负数,计算机取其补码存储
3) 从二进制补码格式还原整数如果最左位是1,计算机取其补码。如果最左位是0,计算机不进行操作
计算机将该整数转换为十进制。
例 3.12 用二进制补码表示法将整数28存储在8为存储单元中
解:该整数是正数,因此把该整数从十进制转换成二进制后不需要其他操作。但需要在左边补0,使其成为8位。
28变为8位的二进制: 0 0 0 1 1 1 0 0
例 3.13 用二进制补码表示法将整数-28存储在8为存储单元中
解:该整数是负数,因此在转换成二进制后计算机对其进行二进制补码运算。
28变为8位的二进制: 0 0 0 1 1 1 0 0
进行补码运算: 1 1 1 0 0 1 0 0