• 2_C语言中的数据类型 (三)原码、反码、补码


    1.1       原码

    将最高位做为符号位(0代表正,1代表负),其余各位代表数值本身的绝对值

    +7的原码是00000111

    -7的原码是10000111

    +0的原码是00000000

    -0的原码是10000000

    1.2       反码

    一个数如果值为正,那么反码和原码相同

    一个数如果为负,那么符号位为1,其他各位与原码相反

    +7的反码00000111

    -7的反码11111000

    -0的反码11111111

    1.3       补码

    原码和反码都不利于计算机的运算,如:原码表示的7和-7相加,还需要判断符号位。

    正数:原码,反码补码都相同

    负数:最高位为1,其余各位原码取反,最后对整个数 + 1

    -7的补码:=

     10000111(原码)

    111111000(反码)

    11111001(补码)

    +0的补码为00000000

    -0的补码也是00000000

    补码符号位不动,其他位求反,最后整个数 + 1,得到原码

    用补码进行运算,减法可以通过加法实现

    7-6=1

    7的补码和-6的补码相加:00000111 + 11111010 = 100000001

    进位舍弃后,剩下的00000001就是1的补码

    -7+6 = -1

    -7的补码和6的补码相加:11111001 + 00000110 = 11111111

    11111111是-1的补码

    资料来源:传智播客  仅供学习研究

  • 相关阅读:
    Cenots6.5 安装 Intel I219-V 网卡驱动
    nginx的安装
    NGINX 简介
    HTTP 并发响应模型
    日志相关的服务器参数详解:
    使用mysqlbinlog提取二进制日志(zz)
    浅谈mysql日志
    mysql DDL&DML 语言
    fastcgi与cgi的区别(zz)
    基于rancher部署Spring-cloud微服务系统
  • 原文地址:https://www.cnblogs.com/wuchuanying/p/6280241.html
Copyright © 2020-2023  润新知