真值、原码、反码、补码、移码的求解方法与换算

时间:2024-11-20 07:47:46

真值、原码、反码、补码、移码的求解方法与换算

  • 背景
  • 求法
    • 原码
    • 反码
    • 补码
    • 移码
  • 相互转换(关系)
    • 原码-反码
    • 反码-补码
    • 补码-移码
    • 举例1
    • 举例2
  • 浮点数专题

背景

最近在备考计算机嵌入式,遇到了很多“码”,整理了一下。

求法

原码

正数:符号位+真值,符号位:正数为0,负数为1
负数:2n+|真值|,其中n为真值的阶数,若为小数,则n=0,即:1+|真值|

反码

正数和原码一样
负数见:原码-反码

补码

正数:符号位+真值,符号位:正数为0,负数为1
负数:2n+1+真值(即2n+1-|真值|),其中n为真值的阶数,若为小数,则n=0,即:2+真值

移码

移码只用于表示整数:2n+真值

相互转换(关系)

原码-反码

正数:形式相同
负数:符号位不变,数值部分取反

反码-补码

正数:形式相同
负数:符号位不变(为1),数值位取反,再在末尾+1

补码-移码

补码和移码只有符号位相反,数值位完全相同

举例1

正数的例子

种类
真值 +1011
原码 01011
反码 01011
补码 01011
移码 11011

举例2

负数的例子

种类
真值 -1011
原码 11011
反码 10100
补码 10101
移码 00101

浮点数专题

一般用移码表示浮点数的阶,阶数是整数
一般用补码表示定点整数