大校网站 中国散文网 联系我们
您当前的位置:首页 > 教学天地 > 教学答疑

如何求一个数的原码、反码和补码

基础部 韩玉会

  最近一段时间,很多同学专门到计算机教研室(文法楼406)来询问进制转换及带符号数的表示方法问题。一对一的讲了好多次,但是肯定还有很多同学,尤其是大四即将参加计算机基础课程清考的同学,对这块内容可能还有疑问,于是,我把进制转换和带符号数的表达方法分别写了两篇文章,以供同学们复习之用。进制转换过程中需要注意的几个问题已于11月24日在教学天地的教学答疑板块刊登,这篇总结一下带符号数的表示方法。

  在计算机中,带符号数的符号可以和其数值一样用一位二进制数来表示,通常,我们把一个数的最高位设定为符号位,表示数的正负,正数用“0”表示,负数用“1”表示,其余位来表示数值的大小。这种在计算机内连同符号一起数字化的数据称为机器数,计算机中常用的机器数有原码,反码和补码三种表示。

  首先:如何求一个数的原码。

  在原码表示法中,第一位是符号位,用“0”表示正数,用“1”表示负数,数值部分以二进制的绝对值表示。总结为一句话就是:符号位加数值位。请看下例:

  设机器字长为8位:

  (+1) 原= 00000001 (+14) 原= 00001110

  (-1) 原= 10000001 (-14) 原= 10001110

  其次:如何求一个数的反码。

  在反码表示法中,正数的反码与原码相同;负数的反码符号位保持不变,数值位部分按位取反(即,“1”变“0”,“0”变“1”)。这就是为什么叫反码的原因。试看下例:

  (+1)反=(+1) 原= 00000001 (+14) 反=(+14) 原= 00001110

  (-1) 反= 11111110 (-14) 反= 11110001

  最后,如何求一个数的补码。

  在补码表示法中,正数的补码与原码和反码相同,也就是说,对正数而言,三码合一。负数的补码在其反码的基础上末位加1。请看下例:

  假设机器字长还是8位:

  (+1)补=(+1)反=(+1) 原= 00000001

  (-1)补= 11111111 (注意和(-1)反=11111110 对比)

  (+14) 反=(+14) 原= 00001110

  (-14) 反= 11110010 (注意和(-14)反=11110001)

  下来看一个完整的例子。求33和-33的原码、反码和补码

  解:(33)D=(100001)B

  (33)原=(33)反=(33)补=00100001

  (-33)原=10100001

  (-33)反=11011110

  (-33)补=11011111

  大学计算机基础课程是大学非计算机专业学生必修的公共基础课程,也是学习其他计算机相关技术及课程的基础。带符号数的表示这一块大家一定要重负数的三种表示形式,它是大学计算机课程中很重要的一个知识点,也是一个常考的点,无论是期末考试、补考还是清考,这一块内容大家都要认真的复习,一定要多动手,多练习,眼过千遍不如手过一遍。

最后更新
热门点击
  1. 计算机基础习题(第一、二章)课后习题
  2. 计算机基础习题(第三、四章)
  3. 计算机基础习题(第五、六章)
  4. 计算机基础习题(第七、八章)
  5. “极点”与“第二次呼吸”及其产生的原
  6. 《高等数学》(上册)第四章 不定积分习
  7. 《高等数学》(上册)第二章 导数与微分
  8. 《高等数学》(上册)第一章 函数与极限
  9. 如何求一个数的原码、反码和补码
  10. 《高等数学》(上册)第三章 中值定理与