一. 补码:
-8的补码是:11111000,因为-8超出了4位二进制所能表达的范围,所以必须要用8位二进制表示。
负整数的补码计算是将其原码除符号位外的所有位取反后加1,-8补码的计算过程是:-8对应正数8(00001000)→所有位取反(11110111)→加1(11111000)。
-126的补码:
126的补码为 0111 1110, 给他取反,1000 0001, 再加1
就是 1000 0010
即:|x|补 <–求补—> |-x|补
注:1. [x + y]补 = [x]补 + [y]补
注:2. [x + y]补 = [x]补 + [-y]补
二. 数的范围
- 无符号数: 8位(0~255) 16位(0~65535)
- 有符号位:8位(-128~127) 16位(-32768~32768)
注(由补码推原来的数):1000 0000是-128,而1111 1111是-1
我们可以这样算,第一位是符号位,将后面的7位二进制转为十进制,然后用128减去,再加符号位
比如1111 1111,7位二进制111 1111是127,128-127=1,所以就是-1
比如1000 0001,7位二进制是000 0001,就是1,128-1=127,就是-127
三. 浮点数在计算机中的储存
27.5的二进制为11011.1
1.10111*2^4
尾数(小数点后的数)10111,补够23位 1011 1000 0000 0000 0000 000
指数:4,加上127,就是131,二进制1000 0011
用二进制表示就是 (符号数位1位)0 (指数位8位)1000 0011 (尾数位23位)1011 1000 0000 0000 0000 000
写成二进制标准形式:0100 0001 1101 1100 0000 0000 0000 0000
四. BCD码
-
压缩型BCD码:一个字节可存放一个两位十进制数,其中高四位存放十位数字,低四位存放个位数字。
如:56的压缩型8421 BCD码是0101 0110; -
非压缩型BCD码:一个字节可存放一个一位十进制数,其中高字节为0,低字节的低四位存放个位。
如:5的非压缩型BCD码是0000 0101,必须存放在一个字节中,56的非压缩型BCD码是00000101 00000110,必须存放在一个字中。