进制介绍
二进制:0,1,满2进1,以0b或者0B开头
十进制:0-9,满10进1。
八进制:0-7,满8进1,以数字0开头表示
十六进制:0-9及A/a(10)-F/f(15),满16进1,以0x或者0X开头表示,此处的A-F不区分大小写
举例说明
int n1 = 0b1010; // 二进制
int n2 = 1010; // 十进制
int n3 = 01010; // 八进制
int n4 = 0x10101; // 十六进制
其他进制转十进制
二进制【转】十进制:从最低位右边开始,将每个位置上的树提出来,乘以2的(位数-1)次方,然后求和
案例:请将二进制的0b1011转成十进制的数
0b1011 = 1(2的1-1次方) + 1(2的2-1次方) + 0(2的3-1次方) + 1(2的4-1次方) = 1 + 2 + 0 + 8 = 11;
八进制【转】十进制:从最低位右边开始,将每个位置上的树提出来,乘以8的(位数-1)次方,然后求和
案例:请将八进制的0234转成十进制的数
0234 = 4(8的1-1次方)+3(8的2-1次方)+2*(8的3-1次方) = 4 + 24 + 128 = 156
十六进制【转】十进制:从最低位右边开始,将每个位置上的树提出来,乘以16的(位数-1)次方,然后求和
案例:请将十六进制的0x23A转成十进制的数
0x23A = 10(16的1-1次方) + 3(16的2-1次方) + 2*(16的3-1次方) = 10 + 48 + 512 = 570
十进制转其他进制
十进制转二进制:将该数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制。
案例:请将 34 转成二进制
34/2=17,余0
17/2=8,余1
8/2=4,余0
4/2=2,余0
2/2=1,余0
所以十进制34的二进制为:0b100010,因为一个字节有8位所以最终为:0b00100010
十进制转八进制:将该数不断除以8,直到商为0为止,然后将每步得到的余数倒过来,就是对应的八进制。
案例:请将131转成八进制
131/8=16,余3
16/8=2,余0
所以十进制131的八进制为:0203
十进制转十六进制:将该数不断除以16,直到商为0为止,然后将每步得到的余数倒过来,就是对应的十六进制。
案例:请将237转成八进制
237/16=14,余13
因为在16进制中,14用E表示,13用D表示
所以十进制237的十六进制为:0xED
练习
十进制123转二进制:0b01111011
十进制678转八进制:01246
十进制8912转十六进制:0x22D0
答案
0b01111011
01246
0x22D0