16进制到byte转换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了16进制到byte转换相关的知识,希望对你有一定的参考价值。

我们经常会看到这样的语法

(byte) 0xAD

 

0xAD实际是个16进制,转换成二进制为:10101101,转换成10进制是:173,它是个正数

10101101只是int的简写,int由4个byte字节,即32位bit组成,实际的值是

(00000000 00000000 00000000 )10101101

 

int由4 byte组成,因此int转byte是会掉位的,直接截取最后一个字节,即:

10101101

符号位是1,因此它是负数,负数的存储方式是补码。因此要先求出补码才能计算值。

求补码方式为:

符号位不变,其他位取反,然后+1,映射到这里则为

11010010 + 1 -> 11010011

则值为 -(2^6+2^4+2^1+2^0) = -83

  

因此0xAD = 173 ,(byte) 0xAD=-83

以上是关于16进制到byte转换的主要内容,如果未能解决你的问题,请参考以下文章

java bytesToHexString 解析

Java中byte与16进制字符串的互相转换

Java中byte与16进制字符串的互相转换

如何将16进制 转换byte数组

byte[]数组与16进制字符串的相互转换

怎么将4字节16进制转化成浮点数