• 原码补码反码


    一. 机器数和真值

    1、机器数

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

    2、真值

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

    十进制中的数 +3的机器数是00000011, 真值是+0000011

    十进制中的数 -3的机器数是10000011, 真值是-0000011

    二. 原码, 反码, 补码

    计算机要使用一定的编码方式存储数据. 原码, 反码, 补码是机器存储一个具体数字的编码方式.

    1. 原码

    原码就是符号位加上真值的绝对值, 最高位表示符号, 其余位表示值

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

    8位二进制数的取值范围是[1111 1111, 0111 1111], 十进制表示: [-127, 127]

    2. 反码

    • 正数的反码是其本身
    • 负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
    [+1] = [0000 0001]原 = [0000 0001]反
    
    [-1] = [1000 0001]原 = [1111 1110]反
    

    3. 补码

    • 正数的补码就是其本身
    • 负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
    [+1] = [0000 0001]原 = [0000 0001]反 = [0000 0001]补
    
    [-1] = [1000 0001]原 = [1111 1110]反 = [1111 1111]补
    

    计算机进行加减乘除运算时会将符号位参与运算

    反码: 减法(存在 0 和最小位 -128问题)

    补码: 减法(perfect)

    原码或反码表示的范围为[-127, +127], 而使用补码表示的范围为[-128, 127].

    • 正数:补码=反码=原码
    • 负数:补码=负数反码+1。
  • 相关阅读:
    Installutil.exe的位置和路径
    .net服务安装(转载)
    移动程序云测试中心
    如何通过web地址直接调用webservices
    VC++引用类型与指针类型
    Android模拟 HTTP multipart/formdata 请求协议信息实现图片上传
    firefox看网页的插件
    DOS下输入汉字
    电脑APK
    HDOJ 1071(球泡无线和直线区域内的面积)
  • 原文地址:https://www.cnblogs.com/serahuli/p/13698874.html
Copyright © 2020-2023  润新知