不同进制之间的相互转换
程序员文章站
2024-03-15 13:06:35
...
不同进制之间的相互转换
一:进制的介绍
1.对于整数,有四种表示方式:
① 二进制:0,1 满 2 进 1。以0b 或者 0B开头
int n = 0b1010;
②十进制:0 - 9 满10进1。
int a = 1010;
③八进制:0 - 7 满 8 进1。以数字0开头表示
int b = 01010;
④十六进制:0 - 9 以及 A(10) - F(15),满16进1。以0x或者0X开头表示。
此处的A-F不区分大小写。
int c = 0x10101;
二:进制转换之其他进制转换为十进制
1.二进制转换成十进制
规则:从最低为(右边)开始,将每个位上的数提取出来,乘以2的(位数 - 1)次方,然后求和。
案例:将0b1011转成十进制数
0b1011 = (1 * 2^0) + (1 * 2^1) + (0 * 2^2) + (1 * 2^3) = 1 + 2 + 0 + 8 = 11
2.八进制转成十进制
规则:从最低为(右边)开始,将每个位上的数提取出来,乘以8的(位数 - 1)次方,然后求和。
案例:将0234转换成十进制
0234 = (4 * 8^0) + (3 * 8^1) + (2 * 8^2) = 4 + 24 + 128 = 156
3.十六进制转成十进制
规则:从最低为(右边)开始,将每个位上的数提取出来,乘以16的(位数 - 1)次方,然后求和。
案例:将0x23A转换成十进制
0x23A = (10 * 16^0) + (3 * 16^1) + (2 * 16^2) = 10 + 48 + 512 = 570
三:进制转换之十进制转换为其他进制
1.十进制转换成二进制
规则:将该数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制。
案例:将34转化为二进制
34 = 0B00100010
2.十进制转换成八进制
规则:将该数不断除以8,直到商为0为止,然后将每步得到的余数倒过来,就是对应的八进制。
案例:将131转换成八进制
98 = 0142
3.十进制转换成十六进制
规则:将该数不断除以16,直到商为0为止,然后将每步得到的余数倒过来,就是对应的十六进制。
案例:将237转换成十六进制
237 = 0xED
四:二进制转换成八进制和十六进制
1.二进制转换成八进制
规则:从低位开始,将二进制数每三位一组,转换成对应的八进制数即可
案例:将0B11010101 转换成八进制
0B11010101 = 0325
2.二进制转换成十六进制
规则:从低位开始,将二进制数每四位一组,转换成对应的十六进制数即可
案例:将0B11010101转换成十六进制
0B11010101 = 0xD5
五:八进制、十六进制转换成二进制
1.八进制转换成二进制
规则:将八进制数的每一位,转成对应的一个3位的二进制数即可
案例:将0237转换成二进制
0237 = 02(010)3(011)7(111) = 0 1001 1111 = 1001 1111
2.十六进制转换成二进制
规则:将十六进制数的每一位,转成对应的一个4位的二进制数即可
案例:将0x23B转换成二进制
0x23B = 0x2(0010)3(0011)B(1011) = 0010 0011 1011