各进制介绍

  • 二进制 0 和 1 ,满 2 进 1

  • 八进制 0 - 7 ,满 8 进 1

  • 十六进制 0 - 9 及 a - f ,满 16 进 1 ,a - f 不区分大小写,以 0x 开头表示

各进制之间的转换

二进制转十进制

从最低位开始,将每个位上的数提取出来,乘以 2 的 (位数 - 1)次方,最后求和

1011 = 1 * 1 + 1 * 2 + 0 + 1 * 2 * 2 * 2 = 1 + 2 + 0 + 8 = 11

八进制转十进制

从最低位开始,将每个位上的数提取出来,乘以 8 的 (位数 - 1)次方,最后求和

0123 = 3 * 1 + 2 * 8 + 1 * 8 * 8 + 0 = 3 + 16 + 64 = 83

十六进制转十进制

从最低位开始,将每个位上的数提取出来,乘以 16 的 (位数 - 1)次方,最后求和

0x34A = 10 * 1 + 4 * 16 + 3 * 16 * 16 = 10 + 64 + 768 = 842

十进制转二进制

将该数不断除以 2,直到商为 0 为止,然后将每步得到的余数倒过来

例:将 56 转为二进制

余数
56 / 2 28 0
28 / 2 14 0
14 / 2 7 0
7 / 2 3 1
3 / 2 1 1
1 / 2 0 1

将得到的余数倒过来为:111000,即 56 转为二进制等于 111000

十进制转八进制

将该数不断除以 8,直到商为 0 为止,然后将每步得到的余数倒过来

例:将 156 转为八进制

余数
156 / 8 19 4
19 / 8 2 3
2 / 8 0 2

将得到的余数倒过来为:234,即 156 转为八进制等于 234

十进制转十六进制

将该数不断除以 16,直到商为 0 为止,然后将每步得到的余数倒过来,在开头拼接 0x

例:将 356 转为十六进制

余数
356 / 16 22 4
22 / 16 1 6
1 / 6 0 1

将得到的余数倒过来为:164,在开头拼接 0x,即 356 转为十六进制等于 0x164

二进制转八进制

将二进制的每三位一组(从低位开始组合),转成对应的八进制数即可

例:将 11010101 转为八进制

低位开始三位一组 对应八进制数
101 5
010 2
011 3

将得到的数倒过来为:325,即 11010101 转为八进制等于 325

二进制转十六进制

将二进制的没四位数一组,转为对应的十六进制数即可

例:将 11010101 转为十六进制

低位开始四位一组 对应十六进制
0101 5
1101 d

将得到的数倒过来为:d5,在开头拼接 0x,即 11010101 转为十六进制等于 0xd5

八进制转二进制

将八进制的每一位数,转成对应的 3 位的二进制即可

例:将 237 转为 二进制

低位开始的每一位数 对应的3位二进制
7 111
3 011
2 010

将得到的数倒过来为:010011111,即八进制 237 转为二进制等于 10011111

十六进制转二进制

将十六进制的每一位数,转成对应的 4 位的二进制即可

例:将 0x237 转为二进制

低位开始的每一位数 对应的4位二进制
7 0111
3 0011
2 0010

将得到的数倒过来为:001000110111,即十六进制 0x237 转为二进制等于 1000110111