详解Java中的byte类型(补充内容)

写在前面

大家有时候可能会对Java中出现的byte类型有些疑惑,今天就来内化这些知识点。这个算是对其他博客的一个补充。内容很少。

byte

在Java中,byte占据一个字节,也就是8的bite位

public static void main(String[] args) {
        System.out.println(Byte.MAX_VALUE);//127
        System.out.println(Byte.MIN_VALUE);//-128
    }

详解Java中的byte类型(补充内容)_第1张图片

这里要说的是下面这些

  1. 127的二进制是 0111 1111
  2. -128的二进制是 1111 1111

如何快速的将十进制转换为二进制(重点)

这里我们以98为例,负数就是符号位变成1,依次有原码变成补码

  1. 将98变成 2的N次方的和
  2. 写出8个0
  3. N为几就将从右数的N+1位置的0变成1
    详解Java中的byte类型(补充内容)_第2张图片

byte的迷惑操作

看看下面代码你就会明白了,

public static void main(String[] args) {
        byte a = 1;
        byte b = 2;
        byte c = a + b; //报错
        byte d = 1 + 2; //不报错
    }

详解Java中的byte类型(补充内容)_第3张图片

解释

在大多数计算机中,CPU运行时是以4个字节来处理数据的。因此当变量小于4个字节时,并且进行算数运算,会发生整型提升,这就是 byte c = a + b会报错的原因, byte d = 1 + 2不会报错是因为 1 和 2 是常量。

你可能感兴趣的:(java,开发语言,后端)