进制之间转换

看尚硅谷韩顺平进制笔记

二进制转十进制

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

最低位解释:比如十进制 129,最低位是9(个位数),然后2(十位数),最后1(百位数),二进制也同理,从最右边开始时最低位

案例:二进制 1011
最低位第一位是1:1 乘以 2的零次方(任何数的零次方都是1) 也就是 1*1 等于 1

最低位第二位是1:1 乘以 2的一次方(任何数的一次方都是它本身) 也就是 1*2 等于 2

最低位第三位是0:0 乘以 2的二次方(零乘以任何数都是0) 也就是 0*4 等于 0

最低位第四位是1:1 乘以 2的三次方 也就是 1*=8 等于 8

最后求和:1 + 2 + 0 + 8 = 11 (也就是二进制1011转成十进制是11

八进制转十进制

其实跟上面二进制转十进制一样,只是把 乘以2的(位数-1)次方这个换成 乘以8的(位数-1)次方 即可

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

最低位解释:比如十进制 129,最低位是9(个位数),然后2(十位数),最后1(百位数),八进制也同理,从最右边开始时最低位

案例:八进制 0123
最低位第一位是3:3 乘以 8的零次方(任何数的零次方都是1) 也就是 3*1 等于 3

最低位第二位是2:2 乘以 8的一次方(任何数的一次方都是它本身) 也就是 2*8 等于 16

最低位第三位是1:1 乘以 8的二次方 也就是 1*64 等于 64

最低位第四位是0:这不用管,因为八进制编程语言一般是以0开头来辨认,直接忽略这个开头就好了

最后求和:3 + 16 + 64 = 83 (也就是二进制0123转成十进制是83

十六进制转十进制

其实跟上面二进制转十进制一样,只是把 乘以2的(位数-1)次方这个换成 乘以16的(位数-1)次方 即可

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

最低位解释:比如十进制 129,最低位是9(个位数),然后2(十位数),最后1(百位数),十六进制也同理,从最右边开始时最低位

案例:十六进制 0x34A
最低位第一位是A:10 乘以 16的零次方(任何数的零次方都是1) 也就是 10*1 等于 10

最低位第二位是4:4 乘以 16的一次方(任何数的一次方都是它本身) 也就是 4*16 等于 64

最低位第三位是3:3 乘以 16的二次方 也就是 3*256 等于 768

后面的0x:这不用管,因为十六进制是以0开头,编程语言一般是以0x开头来辨认,直接忽略这个开头就好了

最后求和:10 + 64 + 768 = 842 (也就是二进制0x34A转成十进制是842

十进制转二进制

规则:将该数不断除以2,直到商为小于1时为止,然后将每一步得到的余数倒过来,就是对应的二进制

案例:十进制 56
在这里插入图片描述
案例:十进制 56
28/2=14 ===== 余0
14/2=7 ===== 余0
7/2=3 ===== 余1
3/2=1 ===== 余1
最后就是 111000

十进制转八进制

其实跟上面十进制转二进制一样,只是把 将该数不断除以2这个换成 将该数不断除以8 即可
规则:将该数不断除以8,直到商为小于1时为止,然后将每一步得到的余数倒过来,就是对应的八进制

案例:十进制 156
156/8=19 ===== 余4
19/8=2 ===== 余3
最后就是 0234

十进制转十六进制

其实跟上面十进制转二进制一样,只是把 将该数不断除以2这个换成 将该数不断除以16 即可
规则:将该数不断除以16,直到商为小于1时为止,然后将每一步得到的余数倒过来,就是对应的十六进制

案例:十进制 356
356/16=22 ===== 余4
22/16=1 ===== 余6
最后就是 0x164

二进制转八进制

规则:将二进制每三位为一组(从低位开始组合),不足3位的要用“0”补足3位,就得到一个八进制数,最后进行拼接
三位一组是因为 2的(位数-1)次方 算出来 最大的数就是7,比如二进制 最大的三位 111,算出来就是7

案例:二进制 11010101
每三位一组,一共可以分成三组011010101

第一组 011 转为十进制
最低位第一位是1:1 乘以 2的零次方(任何数的零次方都是1) 也就是 1*1 等于 1

最低位第二位是1:1 乘以 2的一次方(任何数的一次方都是它本身) 也就是 1*2 等于 2

最低位第三位是0:0 乘以 2的二次方(零乘以任何数都是0) 也就是 0*4 等于 0
最后求和:1 + 2 + 0 = 3 (也就是二进制011转成十进制是3

第二组 010 转为十进制
最低位第一位是0:0 (零乘以任何数都是0) 乘以 2的零次方(任何数的零次方都是1) 也就是 0*1 等于 0

最低位第二位是1:1 乘以 2的一次方(任何数的一次方都是它本身) 也就是 1*2 等于 2

最低位第三位是0:0 乘以 2的二次方(零乘以任何数都是0) 也就是 0*4 等于 0
最后求和:0 + 2 + 0 = 2 (也就是二进制011转成十进制是3

第三组 101 转为十进制
最低位第一位是1:1 乘以 2的零次方(零乘以任何数都是0) 也就是 1*1 等于 1

最低位第二位是0:0(零乘以任何数都是0) 乘以 2的一次方(任何数的一次方都是它本身) 也就是 0*2 等于 0

最低位第三位是1:1 乘以 2的二次方 也就是 1*4 等于 4
最后求和:1 + 0 + 4 = 5 (也就是二进制011转成十进制是3

最后就是 0325

二进制转十六进制

其实跟上面二进制转八进制一样,只是把 将二进制每三位为一组这个换成 将二进制每四位为一组 即可
规则:将二进制每四位为一组(从低位开始组合),不足4位的要用“0”补足3位,就得到一个十六进制数,最后进行拼接
四位一组是因为 2的(位数-1)次方 算出来 最大的数就是15(十六进制中F代表15),比如二进制 最大的四位 1111,算出来就是15(十六进制F)

案例:二进制 11010101
每四位一组,一共可以分成三组11010101

第一组 1101 转为十进制
最低位第一位是1:1 乘以 2的零次方(任何数的零次方都是1) 也就是 1*1 等于 1

最低位第二位是0:0(零乘以任何数都是0) 乘以 2的一次方(任何数的一次方都是它本身) 也就是 0*2 等于 0

最低位第三位是1:1 乘以 2的二次方 也就是 1*4 等于 4

最低位第四位是1:1 乘以 2的三次方 也就是 1*8 等于 8
最后求和:1 + 0 + 4 + 8 = 13 (也就是二进制1101转成十进制是1313在十六进制是D

第一组 0101 转为十进制
最低位第一位是1:1 乘以 2的零次方(任何数的零次方都是1) 也就是 1*1 等于 1

最低位第二位是0:0 乘以 2的一次方(任何数的一次方都是它本身) 也就是 0*2 等于 0

最低位第三位是1:1 乘以 2的二次方 也就是 1*4 等于 4

最低位第四位是0:0 乘以 2的三次方 也就是 0*8 等于 0
最后求和:1 + 0 + 0 + 4 = 5 (也就是二进制1101转成十进制是55在十六进制是5

最后就是 0xd5

八进制转二进制

规则:将八进制数每位转为对应的一个3位二进制,不足时在最左边补充零。
百度说法:八进制数通过除2取余法,得到二进制数,每个八进制对应三个二进制,不足时在最左边补充零

案例:八进制 0237
第一位 2
2/2=1 ===== 余0
不足补零,结果为 010

第二位 3
3/2=1 ===== 余1
不足补零,结果为 011

第三位 7
7/2=3 ===== 余1
3/2=1 ===== 余1
结果为111

最后就是010011111,最后去掉最开头的0,为10011111

十六进制转二进制

规则:将十六进制数每位转为对应的一个4位二进制,不足时在最左边补充零。
百度说法:十六进制数通过除2取余法,得到二进制数,每个十六进制对应四个二进制,不足时在最左边补充零。

案例:十六进制 0x8F
第一位 8
8/2=4 ===== 余0
4/2=2 ===== 余0
2/2=1 ===== 余0
结果为 1000

第二位 F
15/2=7 ===== 余1
7/2=3 ===== 余1
3/2=1 ===== 余1
结果为 1111
最后就是10001111

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值