1、16进制转10进制
08a5=81616+10*16+5=2213
编码实现:
int decimal = Integer.parseInt("08a5", 16);
System.out.println(decimal); // 输出转换后的10进制数
String hex = Integer.toHexString(decimal);
while (hex.length() < 4) {
hex = "0" + hex;
}
System.out.println(hex);
2、10进制转2进制
10进制通过除2取余法,得到二进制:1000 1010 0101
商 | 余数 |
---|---|
2213/2=1106 | 1 |
1106 /2=553 | 0 |
553/2=276 | 1 |
276/2=138 | 0 |
138/2=69 | 0 |
69/2=34 | 1 |
34/2=17 | 0 |
17/2=8 | 1 |
8/2=4 | 0 |
4/2=2 | 0 |
2/2=1 | 0 |
1/2=0 | 1 |
验证一下二进制是否正确
1+4+32+128+2048=2213 正确
编码实现:
// 十进制转二进制
String binary = Integer.toString(156, 2);
System.out.println(binary);
// 二进制转十进制
int decimal = Integer.parseInt(binary, 2);
System.out.println(decimal);
3、byte
byte的范围是-128到127。 byte是一个8位的二进制数,最高位是符号位,表示正负号。因此,byte的最大值为01111111(二进制),即127(十进制)。最小值为10000000(二进制),即-128(十进制)。
UTF-8字符串byte互相转化
byte[] bytes = "您好".getBytes();
String str=new String(bytes,"UTF-8")
十六进制byte互相转化
byte[] dataBytes = DatatypeConverter.parseHexBinary(data);
Strng hex=DatatypeConverter.printHexBinary(dataBytes)
十进制byte互相转化
byte[] array = ByteBuffer.allocate(4).putInt(10).array();
ByteBuffer buffer = ByteBuffer.allocate(4);
buffer.put(array).flip();
int b = buffer.getInt();