进位计数制

  1. 二进制
  2. 八进制
  3. 十六进制

进制之间的转换

  1. 整数10 -> 2(除2取余法)
  2. 小数10 -> 2(乘2取整法)
  3. 整数2 -> 10(按权相加)
  4. 小数2 -> 10(按权相加)
  5. 16 -> 2(逐位转换/分组转换)

原码

用0和1表示符号,数值位不变,二进制真值对应的原码
字长为8位的原码 表示范围:-127~127
【+127】:0 1111111 【-127】:1 1111111
“0”有两种原码形式:0 0000000(+0) 和 1 0000000(-0)

反码

正数情况:和原码一样
负数情况:符号位保持为“1”,数值位分别“按位取反”
字长为8位的反码 表示范围:-127~127
【+127】:0 1111111 【-127】:1 0000000
“0”有两种原码形式:0 0000000(+0) 和 1 1111111(-0)

补码

  1. 对于正数,补码和原码相同
  2. 对于负数,符号位保持为“1”,其余数值“按位取反,末位再加1”就是补码值
    • 负数的补码为该数对应的无符号数的二进制取反加一。
    • 负数补码(首位为1)减一,取反表示的是这个数的无符号数的二进制。

字长为8位的补码 表示范围:-128~127
【+127】:0 1111111 【-128】:1 0000000
“0”只有一种补码形式 【+0】=【-0】00000000
举例:

  • -128==>128(无符号数)==>1000 0000(-128的无符号数的二进制)==>0111 1111(取反)==>1000 0000(补码,加一)(负数的首位为1)
  • -1==>1(无符号数)==>0000 0001(-1对应无符号数的二进制)==>1111 1110(取反)==>1111 1111(补码,加1)(负数的首位为1)
  • 1000 0000(补码) ==> 0111 1111(减一) ==> 1000 000(取反,无符号数128)==> -128(负数)(负数的首位为1)
  • 1111 1111(补码) ==> 1111 1110(减一) ==> 0000 0001(取反,无符号数1) ==> -1(负数)(负数的首位为1)

原码和补码之间的转换

(1)已知X原,求X补
X原=1 0011010 X补=1 1100110
(2)已知X补,求X原
【【X补】补】=【X原】
X补=1 1101100 X原=1 0010100
(3)已知X补,求【-X】补 将符号位连同代码一起求反
【X】补=0 1010110 【-X】补=1 0101010

移码

表示浮点数的阶码 阶码为整数
[X]移=2+x n为[X]原的位数(包括符号位),x是真值,移码运算也等价于将x正向平移或增加2^n-1

  1. 正数:将原码符号位变反
  2. 负数:将原码连同符号位一起变反,末位再加1,即可得到移码

补码和移码:符号相反、数值位相同

定点数

定点数:数的小数点固定在同一位置
image.pngimage.png
image.png

image.png

浮点数

image.png

移位操作

image.png
image.png
image.png
image.png
image.png
image.png
image.png

补码加减

image.png

溢出

image.png
image.png
image.png

乘法

image.png
image.png