进制与进制转换
进制介绍
(1)二进制:0、1,满 2 进 1,以 0b 或 0B 开头
(2)十进制:0-9,满 10 进 1
(3) 八进制:0-7,满 8 进 1,以数字 0 开头表示
(4) 十六进制:0-9 及 A(10)-F(15),满 16 进 1,以 0x 或 0X 开头表示。此处的 A-F 不区分大小写
进制转换
各进制转十进制
(1) 二进制转十进制
(2) 八进制转十进制
(3) 十六进制转十进制
转换方法:从末尾开始,位数值乘以进制数的位数减一次方,末尾的位数设为 0,依次相加求得结果
举例:二进制
101转十进制 计算过程:1*
2的0次方+ 0*2的1次方+ 1 *2的2次方= 5
0b101=5
java
String binary = "11111111";
int decimal1 = Integer.parseInt(binary, 2); // 255
String hex = "FF";
int decimal2 = Integer.parseInt(hex, 16); // 255(不区分大小写)十进制转各进制
(1) 十进制转二进制
(2) 十进制转八进制
(3) 十进制转十六进制
转换方法:除 n 取余法,逆序拼接
注意点:对于二进制,当成是一个字节,即 8 各 bit 位,如果不足八位,在前面补 0
java
int decimal = 255;
String binary1 = Integer.toString(decimal, 2); // 二进制:"11111111"
String binary2 = Integer.toBinaryString(decimal);
String octal1 = Integer.toString(decimal, 8); // 八进制:"377"
String octal2 = Integer.toOctalString(decimal);
String hex1 = Integer.toString(decimal, 16); // 十六进制:"ff"(小写)
String hex2 = Integer.toHexString(decimal); // 十六进制(大写):"FF"(专门方法)二进制各进制
(1) 二进制转八进制
(2) 二进制转十六进制
转换方法
八进制:二进制中的每 3 位表示八进制中的1 位,23 = 8
十六进制:二进制中的每 4 位表示十六进制中的1 位,24 = 16
各进制转二进制
(1) 八进制转二进制
(2) 十六进制转二进制
转换方法;各进制 --> 十进制 --> 二进制
java
String binary = "11111111";
// 1. 二进制 → 十进制
int decimal = Integer.parseInt(binary, 2);
// 2. 十进制 → 八进制
String octal = Integer.toString(decimal, 8); // "377"