美文网首页
原码、移码、补码

原码、移码、补码

作者: 左右_5536 | 来源:发表于2018-10-22 13:36 被阅读0次

原码

原码的表示

注意:

1、0的表示不唯一,整数0000,复数1000,故不利于程序员编程

2、加减运算方法不统一,不能像补码那样减法用加法来实现。

3、需要额外对符号位进行处理,故不利于硬件设计

4、特别当a<b时,实现a-b比较困难

从50年代开始,整数都采用补码来表示,但浮点数的尾数用原码定点小数表示

移码


移码表示

补码

补码-模运算

补码的运算:模-另一个数的绝对值

一个数  - 另一个数 = 一个数 + (另一个数的补码)

例如:一个时钟,模时12。此时时8点,调到12点有两种做法。

1、逆时针调:8-8=0;  这个可以看成是:8+(12-8)=12%12=0;

2、顺时针调:8+4=12;

二进制补码的计算

总结:一个负数的补码等于各位取反,末位加一

-8~+7的补码
求真值的补码

结论:正数的补码是其本身,负数的补码是其正数补码各位取反,末尾加一。

负数的补码简便方法:从右向左遇到第一个1的前面各位取反

真值的计算


真值计算

结论:计算真值,以二进制求十进制的真值

一个二进制数,首先看第一位数是0还是1,如果是0,则这个数是正数,如果是1,则这个数是负数。

一个正数的真值只是把符号位改为+其他数值部分相同不修改,求值。

一个负数的真值把符号位改为- 其他数值各位取反,末尾加1,再求值

如:补码“0101 0110”的真值:

既是计算 +101 0110的值=64+16+4+2=86

补码“1101 0110”的真值:

既是  -010 1010的值 = - (32+8+2)

相关文章

  • 原码、反码、补码和移码

    书中关于原码、反码、补码和移码的定义如下(n是机器字长):原码: 反码: 补码: 移码: 原码, 反码, 补码的基...

  • 数值型数据的表示方法

    带符号数的表示方法 原码 补码 反码 移码

  • 原码、移码、补码

    原码 注意: 1、0的表示不唯一,整数0000,复数1000,故不利于程序员编程 2、加减运算方法不统一,不能像补...

  • JAVA中负数的二进制表示

    计算机对有符号数(包括浮点数)的表示有三种方法:原码、反码和补码,反码=原码按位取反 补码=反码+1。 移码为补码...

  • 原码 反码 补码 移码

    原码: 如果机器字长为n,那么一个数的原码就是用一个n位的二进制数,其中最高位为符号位:正数为1,负数为0。剩下的...

  • 原码,补码,反码,移码

    在计算机中参与运算的数有两大类:无符号数和有符号数。 无符号数 在寄存器中的每一位均可用来存放数值,以机器字长为1...

  • 原码反码补码移码

    转换目标转换方式原码转反码正数不变负数,符号位不动,尾数逐位求反原码变补码正数不变负数,先求反码,然后在尾数加1移...

  • 原码、反码、补码、移码

    原码 二进制位表示,第一位是符号位为1时负数。如:[3]=原[0000 0011],[-3]=原[1000 001...

  • 计算机系统知识

    1、原码、补码、反码、移码(增码) 符号位:0正 1负 a.原码+11=0000 1011 带符号位乘除是正确...

  • 第一章 计算机硬件基

    一、概要 1、数据的表示:数制及其转换、原码、反码、补码、移码、浮点数、溢出、算...

网友评论

      本文标题:原码、移码、补码

      本文链接:https://www.haomeiwen.com/subject/dmzwzftx.html