java中十六进制怎么转换为2进制

Python014

java中十六进制怎么转换为2进制,第1张

java十六进制转换为2进制示例如下:

public class Hex2Binary

{

public static void main(String[] args)

{

String hexString = "ABCD"

System.out.println(hexString2binaryString(hexString))

}

public static String hexString2binaryString(String hexString)

{

if (hexString == null || hexString.length() % 2 != 0)

return null

String bString = "", tmp

for (int i = 0 i < hexString.length() i++)

{

tmp = "0000"

+ Integer.toBinaryString(Integer.parseInt(hexString

.substring(i, i + 1), 16))

bString += tmp.substring(tmp.length() - 4)

}

return bString

}

}

16进制转2机制,可以直接转不用先转10进制

暂且按整形计算,四个字节

int a=0x10

byte[] byte=new byte[4]

for(int i=0i<byte.lengthi++){

byte[i]=(a>i*8)&0xFF;//一个字节8位

}

这个byte就是二进制

<<和 >>是 位操作也就是俗称的位移

这涉及到了二进制 地址方面的东西 暂且不用管 知道怎么用就可以了

左移动一位相当乘以2 右移动一位相当除以2

16<<2

16 左位移 2 位 等同于 16 * 2 * 2 也就等于64

256>>4

256 右位移 4 位 等同于 256 / 2 / 2 / 2 / 2 也就等于16

具体详细的解释我可以大概给你说下 但说深了你不一定会理解

java <<操作符,左边移动,右面填充0

测试:

System.out.println(5<<1)

打印:10

5表示成:0000 0000 0000 0000 0000 0000 0000 0101

进行 <<1 操作:0000 0000 0000 0000 0000 0000 0000 1010

java >>操作符,左边移动,右面填充0

测试:

System.out.println(5>>>1)

打印:2

5表示成:0000 0000 0000 0000 0000 0000 0000 0101

进行 >>>1 操作:0000 0000 0000 0000 0000 0000 0000 0010