zoukankan      html  css  js  c++  java
  • 原码 反码 补码 移码

    1、正数的原码、补码、反码均为其本身;
    2、负数(二进制)的原码、补码、反码公式:
    反码 = 原码(除符号位外)每位取反
    补码 = 反码 + 1
    反码 = 补码 - 1
    移码 = 补码符号位取反
     
    目的:
    反码:解决负数加法运算问题,将减法运算转换为加法运算,从而简化运算规则;
    补码:解决负数加法运算正负零问题,弥补了反码的不足。
    反码与补码都是为了解决负数运算问题,跟正数没关系,因此,不管是正整数还是正小数,原码,反码,补码都全部相同。
    原码、反码、补码都是有符号定点数的表示方法,移码常用来比较大小,一般会把浮点数的阶码用移码表示,移码可用于简化浮点数的乘除法运算。
     
    假设数据的位宽是8位的话,原码就是最高位为符号位,其他7位是数据位,所以表示范围是(-127~-0,0~127)
    反码的表示范围也是(-127~-0,0~127)
    补码中规定用-0表示-128这个数,所以补码的表示范围为:(-128~0~127)
    注:-128是个特殊的数,(-128)没有相对应的原码和反码, (-128) = (10000000)
     
    发现一篇比较深入,讲解很好的博文:http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html
  • 相关阅读:
    B
    I
    C
    判断线段之间的关系(D
    C
    求矩形的周长(线段树+扫描线) Picture POJ
    面积并+扫描线 覆盖的面积 HDU
    线段树->面积并 Atlantis HDU
    E1. Array and Segments (Easy version)(暴力) && E2. Array and Segments (Hard version)(线段树维护)
    Python File writelines() 方法
  • 原文地址:https://www.cnblogs.com/bewolf/p/4459690.html
Copyright © 2011-2022 走看看