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