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

    本文讨论了原码,反码与补码相关的基础知识:对于一个数, 计算机要使用一定的编码方式进行存储. 原码, 反码, 补码是机器存储一个具体数字的编码方式.

    机器数:一个数在计算机中的二进制表示形式,  叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.

    例:十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。

    真值:将带符号位的机器数对应的真正数值称为机器数的真值。

    例:0000 0001的真值 = +000 0001 = +1,1000 0001的真值 = –000 0001 = –1

    原码:原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值.

    例:8位二进制:取值范围 [1111 1111 , 0111 1111],(-127,127);

    [+1]原 = 0000 0001
    [-1]原 = 1000 0001

    反码:正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反;反码表示的是负数, 无法直观的看出来它的数值. 需要将其转换成原码再计算;

    [+1] = [00000001]原 = [00000001]反
    [-1] = [10000001]原 = [11111110]反

    补码:正数的补码是其本身,负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1),通常也需要转换成原码再手动计算其数值;

    [+1] = [00000001]原 = [00000001]反 = [00000001]补
    [-1] = [10000001]原 = [11111110]反 = [11111111]补
    [1000 0000] 表示-128

    应用:

    更加深入,请阅读参考博客,本博客不进行重复总结了; 

    保持更新,转载请注明出处;更多内容请关注cnblogs.com/xuyaowen;

    参考博客:

    原码, 反码, 补码 详解 (比较好的文章讲解)

  • 相关阅读:
    ATOM编辑器插件
    说说关于IE浏览器兼容性
    git命令
    Vue js 的生命周期详解
    Flexbox 布局教程
    到底vuex是什么?
    CSS3 动画 animation和@keyframes
    zabbix添加触发器Triggers
    zabbix邮件报警
    修改zabbix监控项刷新时间
  • 原文地址:https://www.cnblogs.com/xuyaowen/p/binary-code.html
Copyright © 2011-2022 走看看