Java 无符号数的处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 无符号数的处理相关的知识,希望对你有一定的参考价值。

Java没有无符号数,这会带来很多问题。

 

static byte[] x = {(byte) 0xff,(byte) 0xff};
    
    public static void main(String[] args) throws IOException {
    
        byte a = x[0];
        
        int z = a&0xff;
        System.out.println(z);
        
    }

 

int z = a&0xff,

首先a为byte类型,在对其进行&操作时,会先将其转换成int类型,即

  1111 1111        1111 1111        1111 1111        1111 1111

&

  0000 0000        0000 0000        0000 0000        1111 1111

= 0000 0000         0000 0000        0000 0000        1111 1111

结果为255,若不进行&0xff操作直接赋值给z,则得到的值为-1.

 

以上是关于Java 无符号数的处理的主要内容,如果未能解决你的问题,请参考以下文章

无符号数和有符号数的转化

java 中怎么把char型转换成无符号数

有符号数与无符号数比较的坑

JVM | Java程序如何执行

有符号数与无符号数之间运算问题探究

有符号数与无符号数之间运算问题探究