二、八、十、十六进制的相互转换

1 篇文章 0 订阅

进制:

  • 二进制:0、1,满2进1,以 0b 或 0B 开头
  • 十进制:0-9,满10进1
  • 八进制:0-7,满8进1,以数字0开头
  • 十六进制:0-9 及 A(10)~F(15),满16进1,以 0x 或 0X开头表示,此处A-F不区分大小写

十进制转二进制,八进制,十六进制:

十进制转二进制:

将该数不断除以2,直到商为0为止,然后将每步得到的余数倒过来就是对应的二进制

十进制转八进制:

将该数不断除以8,直到商为0为止,然后将每步得到的余数倒过来就是对应的八进制

十进制转十六进制:

将该数不断除以16,直到商为0为止,然后将每步得到的余数倒过来就是对应的十六进制

练习:
十进制:DEC	 	二进制:BIN
八进制:OCT	 	十六进制:HEX
//123转二进制
0b0111 1011
//678转八进制
01246
//8912转十六进制
0x22D0

二进制,八进制,十六进制转十进制:

二进制转十进制:

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

0b1011 = 2^0 + 2^1 + 2^3 = 11

八进制转十进制:

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

0234 = 4 * 8 ^ 0 + 3 * 8 ^ 1 + 2 * 8 ^ 2 = 4 + 24 + 128 = 156

十六进制转十进制:

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

0x23A = 10 * 16 ^ 0 + 3 * 16 ^ 1 + 2 * 16 ^ 2 = 10 + 48 + 512 =570

练习:
//将0b110001100转成十进制
0b110001100 = 4+8+2^7+2^8
//02456转成十进制
02456 = 6 * 8 ^ 0+ 5 * 8 ^ 1+ 4 * 8 ^ 2 + 2 * 8 ^ 3
//0xA45转成十进制
0xA45 = 5 * 1 + 4 * 16 + 10 * 16 ^ 2

二进制转八进制、十六进制:

二进制转八进制:

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

0b11010101 = 0b11(3)010(2)101(5) = 0325

二进制转十六进制:

从低位开始,将二进制数每四位一组,转换成对应十六进制数即可

0b11010101 = 0b1101(D)0101(5) = 0xD5

练习:
//0b11 100 101转成八进制
0b11100101 = 0b11(3)100(4)101(5) = 0345
//0b11 1001 0110转成十六进制
0b1110010110 = 0b11(3)1001(9)0110(6) = 0x396

八进制、十六进制转二进制:

八进制转成二进制:

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

0237 = 02(010)3(011)7(111) = 0b1001 1111

十六进制转成二进制:

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

0x23B = 0x2(0010)3(0011)B(1011) = 0b0010 0011 1011

练习:
//01230转二进制
01230 = 01(001)2(010)3(011)0(000) = 0b1 010 011 000
//0xAB29转二进制
0xAB29 = 0xA(1010)B(1011)2(0010)9(1001) = 0b1010 1011 0010 1001

八进制、十六进制的相互转换:

通过转换成二进制来实现:八进制<—>二进制<—>十六进制

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 进制转进制:将进制数从右往左每一位对应的权值分别为1、2、4、8、16、32……,将每一位的权值与该位的数值相乘,然后将所有乘积相加即得到对应的进制数。 例如,进制数1011转换进制数的计算过程为:1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 0 + 2 + 1 = 11。 2. 进制转进制:使用“除2取余”的方法,将进制数不断除以2,将每次得到的余数倒序排列即为对应的进制数。 例如,将进制数27转换进制数的计算过程为:27 ÷ 2 = 13 余 1,13 ÷ 2 = 6 余 1,6 ÷ 2 = 3 余 0,3 ÷ 2 = 1 余 1,1 ÷ 2 = 0 余 1。将余数倒序排列,得到的进制数为11011。 3. 进制转进制:将进制数从右往左每三位分组,对每组进制数分别赋予权值1、2、4,将每组进制数的权值与数值相乘,然后将所有的乘积相加即得到对应的进制数。 例如,进制数1101101转换进制数的计算过程为:001 101 101,分别对应的权值为1、2、4,因此,得到的进制数为155。 4. 进制转进制:将进制数的每一位转换为三位进制数,然后将这些进制数连接起来即可得到对应的进制数。 例如,将进制数155转换进制数的计算过程为:1对应的进制数为001,5对应的进制数为101,5对应的进制数也为101,因此,得到的进制数为1101101。 5. 进制转十六进制:将进制数从右往左每四位分组,对每组进制数分别赋予权值1、2、4、8,将每组进制数的权值与数值相乘,然后将所有的乘积相加即得到对应的十六进制数。 例如,进制数1101101转换十六进制数的计算过程为:0110 1101,分别对应的权值为1、2、4、8和1、16,因此,得到的十六进制数为6D。 6. 十六进制进制:将十六进制数的每一位转换为四位进制数,然后将这些进制数连接起来即可得到对应的进制数。 例如,将十六进制数6D转换进制数的计算过程为:6对应的进制数为0110,D对应的进制数为1101,因此,得到的进制数为01101101。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值