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

    原码:二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

    反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

    补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

    例:

    [+7]反= 0 0000111 B                               [+0]反=00000000B
    [-7]反= 1 1111000 B                                [- 0]反=11111111B
    [-7]补= 1 1111001 B                                [ 0 ] 补=00000000B (仅此一个)
     
    (1) 已知原码,求补码。
    负数 :原码——(符号位不变,数值部分按位求反;得反码,再在其反码的末位加1。)—— 补码
    2) 已知补码,求原码。
    负数 :符号位不变,先取反后加1 ( 或者是先减1后取反)。
        但是需要注意 [1000 0000]补 = =-128,如果按照上面的运算 [1000 0000]补 = [0000 0000]这个是不正确的。
          如果是 8bit, 用补码可以表示的范围是 -128 ~ 127 补码可以多保存一个最小值。
     
    个人理解:就像是一个128个刻度的表盘(0-127个数字即[000 0000]-[111 1111]),正转到127=[111 1111] 表示正数127,当转到128的时候归零了。
         在负数里面就是反转一个刻度表示-1 ,反转到-127 = [000 0001],当再反转一个格到[000 0000]的时候这个128给了负数
                  也就是0 占用了+128 的位置。
              所以8bit 的补码表示范围是 -128 ~ 127 之间。
     
     
     
    本文为复制粘贴的结果,非原创。)——要是我创的别人也不用啊,哈哈
  • 相关阅读:
    mybatis-spring 集成
    maven 插件深入了解
    maven 常用插件3
    maven 插件2
    <转载> maven 详解 http://www.cnblogs.com/binyue/p/4729134.html
    linux base shell 基础语法
    浏览器运行原理
    <转载> js 闭包
    dubbo 学习资料
    HTTP
  • 原文地址:https://www.cnblogs.com/sepeng/p/2993987.html
Copyright © 2011-2022 走看看