前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >二、八、十六都分不清,怎好意思说是搞计算机的?

二、八、十六都分不清,怎好意思说是搞计算机的?

作者头像
程序视点
发布2023-10-25 17:10:07
2290
发布2023-10-25 17:10:07
举报
文章被收录于专栏:程序小小事程序小小事
将程序视点设为星标精品文章第一时间阅读

大家好,欢迎来到程序视点!我是小二哥。

今天,紧接着上期的进制的主题,我们一起来看看进制间的转换问题?这要都分不清楚,咋好意思说我们是做程序的呐~

前言

对于整数,有四种常见的表示方式:

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

我们先来回顾下二进制的相关知识。用张图来总结下:

因此,-1的在计算机中的二进制码是这样来的。

十进制与二进制、八进制、十六进制转换(重点)

首先我们来学习十进制与二进制之间的转换,这是必须要掌握的哦。

十进制转二进制

如果我们想将十进制转为二进制,可以采用辗转法,将十进制除以2再取余,然后将余数和最后的1按照从下向上倒序写的方法。例如,把十进制的150转为二进制的10010110

来个顺口溜记一下:除2取余,逆排序

这个方式对不对呢?当然是对的!我们将二进制数按权展开,相加即为十进制的数。这就是我们二进制转十进制的方法。

二进制转十进制

从左到右,每个二进制数按权展开相加,得到十进制数。现在把上面的10010110转回去。

对于二进制到十进制的转换,大家记住一个从左到右,1248规律即可。最低位上计算出来的十进制结果最大值就是1,往前一位的最大值是2,以此类推,4、8、16、32、64、128、256..... 因此,如果该二进制位上是1,该位置上肯定可以得到对应的十进制最大值,否则只能得到0。比如11111111转成对应的十进制,就可以直接计算:1+2+4+8+16+32+64+128=255

有了上面十进制和二进制间的转换关系,我们可以依葫芦画瓢解决十进制与八进制和十六进制的转换问题。

十进制转八进制或十六进制

十进制转二进制是:除2取余,逆排序

那么,我们可以顺势记住如下结论:

十进制转八进制就是:除8取余,逆排序十进制转八进制就是:除16取余,逆排序

八进制或十六进制转十进制

二进制数据采用位置计数法,其位权是以2为底的幂。这就是我们前面说的“按权展开相加”。同理,八进制和十六进制也可以这样推导:八进制的位权是以8为底的幂,十六进制的位权是以16为底的幂。

ps:这里需要记住一个知识点。无论几进制,最低位都是1,n进制位权计算:高位=低位n。

二进制 第1位:1(最低位位权) 第2位:12=2 第3位:22=4 ...

二进制与八进制和十六进制的转换

十进制转二进制、八进制、十六进制,我们按照一个套路就搞定了。这非常好理解和记忆。那二进制、八进制、十六进制间怎么转换呢?

最实在的办法是:转为十进制后,再转为其他进制。这个方法绝对不会错。

好啦!有的小伙伴就说了,这样要除来除去,还有求幂,太麻烦了!有没有比较取巧的方法呢?

有的!关键点在:8是2 ^ 3,16是2 ^ 4。二进制转八进制和十六进制可以利用其转换。通俗的讲,就是每3个二进制位表示一个八进制位,每4个二进制位表示一个十六进制位

二进制转八进制
八进制转二进制

二进制转八进制,是每3个二进制位表示一个八进制位(即每3个二进制位按权展开求和得到一个八进制位)。那反过来,一个八进制位要得到它对应的3个二进制位,不就是除2取余,逆排序吗?

二进制转十六进制
十六进制转二进制

有了前面八进制转二进制的推论,我们也可以知道:一个十六进制位要得到它对应的4个二进制位,就是除16取余,逆排序

小结

进制转换在笔试中也可能考察,是一个基础的内容。这个部分相对比较简单,就怕大家把自己绕进去了。本文涵盖了常见的二进制、八进制、十进制、十六进制间的转换问题。主要分两个部分:一是十进制与二进制、八进制、十六进制的转换,二是二进制与八进制、十六进制的转换。有了这两个基础,八进制和十六进制间的转换,就可以用十进制或二进制作为中间桥梁进行转换了。

One more thin

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序视点 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 十进制转二进制
      • 二进制转十进制
        • 十进制转八进制或十六进制
          • 八进制或十六进制转十进制
          • 二进制与八进制和十六进制的转换
            • 二进制转八进制
              • 八进制转二进制
                • 二进制转十六进制
                  • 十六进制转二进制
                  • 小结
                  • One more thin
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档