• 关于 byte 的范围


    1. 关于原码、反码、补码

    1. 原码:一个数在计算机中的二进制形式,最高位表示符号位,1 表示 负,0 表示 正
      [ 1 ]原 = 0000 0001
      [ -1 ]原 = 1000 0001
    2. 反码:正数的反码与原码相同,负数的反码:在原码的基础上,符号位不变,其它各位取反(1 变 0,0 变 1)
      [ 1 ]反 = 0000 0001
      [ -1 ]反 = 1111 1110
    3. 补码:正数的补码与原码相同,负数的补码:反码 + 1
      [ 1 ]补 = 0000 0001
      [ -1 ]补 = 1111 1111

    2. 计算机运算

    1. 计算机中只有加法,没有减法,减去一个数,就是加上这个数的负数
    2. 计算机运算时,符号位参与运算
    3. 人识别数,一定要看原码(对于人类而言,二进制表示的数一定是从原码中求出的)
    4. 原码运算:
      1 - 1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原 = [1000 0010]原 = -2
    5. 反码运算:
      1 - 1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原 = [0000 0001]反 + [1111 1110]反 = [1111 1111]反 = [ 1000 0000 ]原 = -0
    6. 补码计算:
      1 - 1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原 = [0000 0001]反 + [1111 1110]反 = [0000 0001]补 + [1111 1111]补 = [0000 0000]补 = 0

    反码的作用是解决减法运算,补码的作用是解决反码产生的 ±0 问题

    综上,计算机内部采用补码的方式存储有符号的数据,采用补码的方式进行运算

    3. 为什么byte类型的范围是 -128 ~ 127?

    1. byte 占一个字节(8个 bit 位),最高位是符号位,尾七位可以表示的就是 0 ~ 2^7 - 1( 1000 0000 = 2 ^ 7,减1,得到 111 1111),所以 byte 可以表示 -127 ~ 127
    2. [1000 0000]补 表示 -128,-128只有补码,没有原码和反码
    3. 我认为[1000 0000]补 = [0111 1111]反 = [0000 0000]原 = 0;已经有[0000 0000]原 表示 0 了,不需要[1000 0000]补 表示 0 了,所以[1000 0000]补 表示 -128
    4. 综上所述 byte 的范围就是 -128 ~ 127
    5. byte类型,1 + 127 = [0000 0001]原 + [0111 1111]原 = [0000 0001]补 + [0111 1111]补 = [1000 0000]补 = -128;
      2 + 127 = [0000 0010]原 + [0111 1111]原 = [0000 0010]补 + [0111 1111]补 = [1000 0001]补 = [1000 0000]反 = [1111 1111]原 = -127
      在这里插入图片描述

    4. 基本类型的范围

    基本数据类型字节 and 范围
    byte1 , -128 ~ 127(- 2 ^ 7 ~ 2 ^ 7-1 )
    short2,- 2 ^ 15 ~ 2 ^ 15-1
    int4,-2 ^ 31 ~ 2 ^ 31-1
    long8,-2 ^ 63 ~ 2 ^ 63 - 1
    float4
    double8
    char2

    5. 关于 int 类型的范围

    1. 0000 0000 0000 0000 0000 0000 0000 0000,int类型占4个字节,32个bit位
    2. 最高位是符号位,尾31位可以表示的是 0 ~ 2^31 - 1,所以 int 可以表示 -2 ^31 - 1 ~ 2 ^31 - 1
    3. [1000 0000 0000 0000 0000 0000 0000 0000]补 表示 -2^31,[0111 1111 1111 1111 1111 1111 1111 1111]反 = [0000 0000 0000 0000 0000 0000 0000 0000]原 表示 0,与 byte 类似
    4. 因此,int 类型的范围是 -2 ^ 31 ~ 2 ^ 31-1

    神奇黄河口,魅力石油城

    山东东营
    在这里插入图片描述

  • 相关阅读:
    常用的Layout布局元素(重点)
    Kafka(二) 生产者
    冷门但实用的Word技巧
    IOS 关于CoreText的笔记
    linux中mysql下mysqldump命令常见用法详解
    【QT教程】QT6物联网应用
    鸿蒙HarmonyOS实战-ArkUI事件(焦点事件)
    FlashDB 移植
    LeetCode 2594. Minimum Time to Repair Cars【数组,二分】1915
    看懂这篇文章,你就懂了Mybatis的二级缓存
  • 原文地址:https://blog.csdn.net/gjwloveforever/article/details/126014941