码迷,mamicode.com
首页 > 其他好文 > 详细

原码、补码、反码和移码

时间:2017-07-12 21:19:52      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:表达   line   log   也有   负数   技术分享   有符号数   实现   img   

  在计算机中所有的数据的保存均是用二进制来实现的,而二进制的表示则是一串的0,1组成。而在计算机的表达中有着机器数和原码,反码,补码和移码等数据的编码表示方法。其中这些编码的方法称为码制。

一、机器数

  各种数据在计算机中的表示的形式称为机器数,其特点是数的符号用0、1来表示。机器数并不能算作真正的数值。

二、真值

  机器数对于的实际数值称为该数的真值。也就是带符号的机器数(机器数是不带符号位的);机器数又分为无符号数和有符号数两种。无符号数表示正数,在机器数中没有符号位。对于带符号数,机器数的最高位是表示正负两种符号的,其中1表式负数,0表示正数。

   技术分享

三、原码

  原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制,如下:

   技术分享

四、反码

  反码有两种情况:

  1. 当原码为正数时,其反码就等于正数的原码(+原码 = +反码)
  2. 当原码为负数时,其反码就等于正数的原码按位取反,但是最高位的符号位不变

  技术分享

  如果一个反码表示的是负数, 要将其转换成原码再计算它真正的数值,否则是不知道它表示是什么数值

五、补码

  补码也有两种情况:

  1. 当原码为正的时候,其补码也等正数的原码(+原码 = +反码 = +补码)
  2. 当原码为负数时,其补码为负数反码加1

   技术分享

六、移码

  移码(又叫增码)是符号位取反的补码,如下:

   技术分享

原码、补码、反码和移码

标签:表达   line   log   也有   负数   技术分享   有符号数   实现   img   

原文地址:http://www.cnblogs.com/geore/p/7157307.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!