MENU

原码、反码、补码、移码

October 27, 2018 • Read: 7747 • 计算机组成原理阅读设置

机器数与真值

  • 真值:带符号的数 +1.1011,-0.1011
  • 机器数:符号数字化的数 0.1011,1.1011

原码表示法

整数

小数

举例


原码的缺点

用原码做加法时,会出现如下问题:

补码表示法

从刚才原码做加法我们可以看出,由于数的正负形不确定,导致最终做的运算也不确定,因此我们想找一个与负数等价的正数,来代替这个负数,使得减法变成加法

我们从生活中的一个例子来讲这个概念——时钟

假设现在时钟指向6点,我们要调整到3点,有两种办法:逆时针转动3小时或者顺时针转动9小时

结论:

  • 一个负数加上“模”即得该负数的补数
  • 一个正数和一个负数互为补数时,他们的绝对值之和即为模数
  • 正数补码为其本身
  • 负数补码为数值为取反加1

练习

求下列真值的补码
-70 = 1,1000110
70 = 0,1000110
0.1110 = 0.1110
-0.1110 = 1.1110
0.0000 = 0.0000
-0.0000 = 0.0000 因为由小数补码的定义,x<0时,x的补码为2+x
-1.0000 = 1.0000

反码表示法


练习

三种机器数的小结

  • 最高位符号位,书写上用“,”(整数)或“.”(小数)将数值部分和符号位隔开
  • 对于正数原码=补码=反码
  • 对于负数,符号位为1,其数值部分

    • 原码除符号位外每位取反末位加1=补码
    • 原码除符号位外每位取反=反码

例题

1.设机器数字长为8位(其中1位为符号位)对于整数,当其分别代表无符号数、原码、补码和反码时,对应的真值范围各为多少?

移码表示法

移码定义

  • 小数没有移码定义

补码和移码的区别

真值、补码和移码对照表

Archives Tip
QR Code for this page
Tipping QR Code
Leave a Comment

2 Comments
  1. 博客很漂亮 博客很漂亮

    这个评论系统是怎么搞的??

    1. mathor mathor

      @博客很漂亮typecho自带评论系统