Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java-将字节转换为整数-为什么每个字节都带有0xff?_Java_Math_Byte_Bit - Fatal编程技术网

java-将字节转换为整数-为什么每个字节都带有0xff?

java-将字节转换为整数-为什么每个字节都带有0xff?,java,math,byte,bit,Java,Math,Byte,Bit,以下两者之间的区别是什么: int n = (b1 & 0xff) << 24 | (b2 & 0xff) << 16 | (b3 & 0xff) << 8 | b4 & 0xff int n=(b1&0xff)让我假设b1、b2、b3和b4的类型是byte 在这种情况下,它们的值将被符号扩展,如果它们是负数,如果不使用,结果将是错误的 演示: 让我假设b1、b2、b3和b4的类型是字节 在这种情况下,它们的值将被符号扩展,如

以下两者之间的区别是什么:

int n = (b1 & 0xff) << 24 | (b2 & 0xff) << 16 | (b3 & 0xff) << 8 | b4 & 0xff

int n=(b1&0xff)让我假设
b1
b2
b3
b4
的类型是
byte

在这种情况下,它们的值将被符号扩展,如果它们是负数,如果不使用,结果将是错误的

演示:


让我假设
b1
b2
b3
b4
的类型是
字节

在这种情况下,它们的值将被符号扩展,如果它们是负数,如果不使用,结果将是错误的

演示:


首先你需要了解
b1首先你需要了解
b1以使程序更安全?你能解释为什么吗?如何使程序更安全?这些类型肯定是
byte
类型吗?为了使程序更安全?你能解释为什么吗?如何使用和使其更安全?这些类型肯定是
byte
类型吗?
int n = b1 << 24 | b2 << 16 | b3 << 8 | b4
class Test {
    public static void main(String[] args) {
        byte a = (byte)128;
        int x1 = a << 8;
        int x2 = (a & 0xff) << 8;
        System.out.println(x1);
        System.out.println(x2);
    }
}
-32768
32768
    11111111111111111111111111101110  &
    00000000000000000000000011111111
    00000000000000000000000011101110