zoukankan      html  css  js  c++  java
  • 补码,反码,加减法运算,类型取值范围

    ## 知识普及:












    计算机规定0000 0000代表0, 1000 0000代表的-0 没有意义,必须找个-127~127之外的数字与之对应. 认为规定 -0 就是 -128

    ### 数学家分析:
    1. byte占用8个bit , 可得其可以表示2^8个数据.
    2. 这8个bit分为 符号位与数值位 , 符号位0表示正数 1 表示负数.
    3. 按照先前分析可得 (+127:0111 1111 , +1: 0000 0001,+0 : 0000 0000 , -0: 1000 0000, -1 : 1000 0001,-127:1111 1111)
    4. 可以看出上面的最高位是不参与计算数值的, 只代表一个符号位置. 但是出现一个问题就是 +0 和 -0 怎么办? 这不都是0么?
    5. 规定一下 -0:1000 0000代表一个-127~127之外的数字. 那就代表-128.

    ### 程序员分析:

    1. 计算机存储的带有符号的整数实质上存储的都是他们的补码.
    2. 正数和0的补码,反码就是其本身原码,不需要进行转换得到反码和补码.
    3. 负数的反码是符号位不变,其它位取反;补码是在负数的基础上加1(符号位保持不变.).
    4. 计算机中使用补码进行加法运算.

    #### 示例:
    1. 计算机中不存在减法运算,减法运算会转换成加法运算.8-1=8+(-1)=(0000 1000)+(1111 1111) = (0000 0111)


    (源码)1000 0001 =(补码)1000 0000 = (反码)1111 1111
  • 相关阅读:
    idea+maven使用
    MySQL数据库一个字段对应多个值得模糊查询
    什么时候用接口?什么时候用抽象类?
    线程的死锁和死锁解决的实际案例
    idea 实用插件
    linux查看日志报错
    mysql日期模糊查找的方法
    mysql 日期函数
    win10安装sonarqube
    docker中mysql数据库导出部分数据
  • 原文地址:https://www.cnblogs.com/A-FM/p/10905137.html
Copyright © 2011-2022 走看看