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
  • 相关阅读:
    Spark性能优化指南——基础篇
    spark精华面试题
    JVM性能调优总结
    Eclipse安装Hadoop插件配置Hadoop开发环境
    CPU高的解决方法
    Flume源码分析--转载
    Flume-ng的原理和使用--转载
    spark内核源码深度剖析(2)--Spark的三种提交模式
    java调用so文件
    爬取网页数据基础
  • 原文地址:https://www.cnblogs.com/A-FM/p/10905137.html
Copyright © 2011-2022 走看看