Java 进制
!!!进制是程序员的必备技能!!!
Java 中 对于整数有四种表示方式:
- 二进制:二进制 里只有
0,1满 2 进 1 以0b/0B开头表示 - 八进制:使用
0~7,满 8 进 1,以数字0开头表示 - 十进制:使用
0~9,满 10 进 1 - 十六进制:使用
0~9 A~F,满 16 进 1,以0x/0X开头表示 (字母不区分大小写)
// 二进制
int bin_ = 0b11011; // 转换为十进制表示 27
// 八进制
int oct_ = 011011; // 转换为十进制表示 4617
// 十进制
int dec_ = 11011; // 十进制 11011 就是 11011
// 十六进制
int hex_ = 0x11011; // 转换为十进制表示 69649
进制的转换
其他进制转十进制
其他进制转 十进制 的公式如下:
从最低位开始,每位乘 进制数 ^位数-1 的和
如上二进制的 11011 套用上面的公式,转换十进制过程如下:
11011 = 1 * 2^(1-1) + 1 * 2^(2-1) + 0 * 2^(3-1) + 1 * 2^(4-1) + 1 * 2^(5-1)
11011 = 1 + 2 + 0 + 8 + 16
11011 = 27
其他进制转 十进制 套用方式一样
这是我自己对二进制的记法:
把每位对应的数字记下来,例如 11111111 每位对应的分别是上一位的2次方 128 64 32 16 8 4 2 1
用我的记法把 10010110 根据上面每位对应的数字 128 + 0 + 0 + 16 + 0 + 4 + 2 + 0 我们只需要求和就行了,不需要计算 ^位数 - 1的结果了,因为 2 的次方是最好记的,也是最常用的。
十进制转其他进制
公式:将该数不断除以进制数,直到商为 0,然后将每步得到的余倒过来
二进制转八进制
二进制 转 八进制 的公式如下:
从最低位开始每三位一组,每组转成对应的八进制数
如:0b11100101
拆分成每三个一组为 11 100 101
转成对应的八进制 就是 3 4 5
转换结果就是:345
二进制转十六进制
二进制 转 十六进制 的公式如下:
从最低位开始每四位一组,每组转成对应的十六进制数
如:0b1110010110
拆分为四位一组就是 11 1001 0110
转换为对应的十六进制就是 3 9 6
转换结果就是 396
八进制转二进制
规则:将八进制数每一位,转换成对应的一个三位的 二进制 数即可。
例如 0372 分别对应011 111 010
结果 0b000011111010
十六进制转二进制
规则:将十六进制数每一位,转换成对应的一个四位的 二进制 数即可。
例如 0x23b 分别对应 0010 0011 1011
结果:0b001000111011

浙公网安备 33010602011771号