原码、反码、补码、移码

原码、反码、补码、移码

原码、反码、补码、移码

原码、反码、补码和移码是计算机中表示和处理有符号数的几种方法。

原码

原码是计算机中表示有符号数的一种最简单的方法。它使用最高位表示符号位,0表示正数,1表示负数,其余位表示数值的绝对值。例如,8位二进制数中,+5的原码表示为00000101,-5的原码表示为10000101

反码

反码是对原码的一种改进表示方法。正数的反码与原码相同,负数的反码是对原码逐位取反(符号位除外)。例如,8位二进制数中,+5的反码表示为00000101,-5的反码表示为11111010

补码

补码是计算机中最常用的表示有符号数的方法。正数的补码与原码相同,负数的补码是其反码加1。例如,8位二进制数中,+5的补码表示为00000101,-5的补码表示为11111011

移码

移码是一种将所有数值都转换为非负数的方法,通常用于浮点数的表示。移码通过在原数值的基础上加上一个偏移量来实现。例如,假设使用8位移码,偏移量为128,则+5的移码表示为10000101,-5的移码表示为01111011

这些编码方法在计算机系统中有着广泛的应用,尤其是在算术运算和数据表示中。

+0和-0的原码、反码、补码、移码

原码 反码 补码 移码
+0 00000000 00000000 00000000 10000000
-0 10000000 11111111 00000000 00000000

浮点数的二进制表示

浮点数的二进制表示主要包含:(16)数符、阶符(15)、阶码(14-11)、尾数(10-1)

浮点数加法运算

  1. 首先先进性对阶,阶码小的向阶码大的对齐,同时尾数进行右移(变小)。
  2. 然后再对尾数进行加减法运算。
  3. 然后进行规格化处理(IEEE754)。