java如何将十六进制0xFF5100A5转换为无符号int值,貌似java不支持无符号数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java如何将十六进制0xFF5100A5转换为无符号int值,貌似java不支持无符号数据?相关的知识,希望对你有一定的参考价值。

谢谢大家的解答
我之前是想用java把0xFF5100A5写到文件里面,结果发现写完后用16进制打开发现不对。
后来我把它换成用字节写,就能得到正确的了。如下:希望哪位能给个详细的解释
byte h1 = (byte) 0xA5;
byte h2 = (byte) 0x00;
byte h3 = (byte) 0x51;
byte h4 = (byte) 0xFF;
之前我是用写字符的方式char []c=new char[]0xA5,0x00,0x51,0xFF;

你需要使用long来存储这个值,long在java里是64位整数,java确实不支持无符号数据。 参考技术A String a="FF51";
Integer i = Integer.parseInt(a.toLowerCase(),16);
System.out.println(i);
去掉前面的0x,
貌似你的值太大,在我的32位机器上没法转换。
参考技术B 你知道无符号int跟int的差别吗?用位运算转一下不就行了

以上是关于java如何将十六进制0xFF5100A5转换为无符号int值,貌似java不支持无符号数据?的主要内容,如果未能解决你的问题,请参考以下文章

理解 Java 中的 &0xff 值

如何将十六进制转换为 RGB?

进制之间互转

java 如何将string src = "ff" 转为 byte[] bt = (byte)0xff

十进制数字如何转换成IP地址?

单片机中0xff,oxfe,0xf7这种如何转换成二进zhi ,求方法