zoukankan      html  css  js  c++  java
  • 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的补码

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

  • 相关阅读:
    归并排序
    希尔排序和插入排序的关系
    相对路径与绝对路径
    httpservlet类中两个service方法
    假如生活欺骗了你
    循环队列判满和判空的两种方式
    并查集,带权,水题PKOJ1703
    字典树HDU1251
    POJ食物链,并查集,包含种类的分部
    HDU1043逆向bfs打表
  • 原文地址:https://www.cnblogs.com/wuchuanying/p/6280241.html
Copyright © 2011-2022 走看看