写点什么

程序猿必备的数电知识,快来看看你掌握多少!(建议收藏)

作者:孤寒者
  • 2022 年 6 月 08 日
  • 本文字数:2683 字

    阅读完需:约 9 分钟

程序猿必备的数电知识,快来看看你掌握多少!(建议收藏)

🔞0.前言:

  1. 👻👻某些大牛曾说过:一个优秀的程序猿, 他不仅软件层面玩的好;而且硬件层面也玩的花。 👻👻


「华为天才少年」——稚晖君的光辉事迹想必大家有有所耳闻:  就比如前一段时间网上爆火他的一件神仙之作——耗时仅四个月,开发出的一款完美的自动驾驶自行车!   需要注意的是:这个作品从构思到实物产出(CAD 车体建模,载板 PCB 设计,手工焊接,总线控制,RPC 通信,电机控制,传感器数据,ROS 信息分发,SLAM 建图,图像分类,PID,卡尔曼滤波数据融合,参数整定...)全都经他一人之手。这是货真价实的全栈工程师,一个人堪比一整个技术团队!!!


  1. 😬😬而且当年他去面试 OPPO 的时候拿到了两份 Super Special 的 offer:一个是硬件岗、一个是算法岗。 可能有的小伙伴要说——“这是天才,我们常人无法企及!”😬😬


  普通人经过不懈努力——最后变得不普通的例子也不计其数!  比如最鲜为人知的例子:前乒乓球奥运冠军邓亚萍,从小个子长得慢,胳膊短,为了能提高乒乓球技能加倍苦练,成为乒乓球大满贯得主。


  1. 😜😜“确实,不得不承认人与人之间是有差距的”,但是我想说的是:“我们可能做不到他做的那么好,但是最基本的硬件知识/数电知识我们还是要了解的。”——正所谓:知其然,更要知其所以然!😜😜


  知道的越少,不知道的就越少;知道的越多,不知道的就越多!


  1. 🐌🐌我会尽量把技术文写的通俗易懂/生动有趣,保证每一个想要学习知识 &&认认真真读完本文的读者们能够有所获,有所得。当然,如果你读完感觉本文写的还可以,真正学习到了东西,希望给我个「 赞 」和 「 收藏 」,这个对我很重要,谢谢了!🐌🐌



🔞1.常见进制介绍:

🎈(1)十进制:

 在十进制数中,每一位有 0-9 十个数码,所以计数的基数是 10。超过 9 的数必须用多位数表示,其中低位和相邻高位之间的关系是:逢十进一,故称为十进制。

①示例:

②可知一个任意多位的十进制数 D 均可展开为如下形式:

③拓展—— 若以 N 取代式中的 10,即可得到多位任意进制(N 进制)数展开式的普遍形式:

 式中 i 的取值与十进制展开式的规定相同。  「变量详解」:    N 称为计数的基数;    k 为第 i 位的系数;    N 称为第 i 位的权。


🎈(2)二进制:

 目前在数字电路(我们生活在 0 和 1 组成的世界里!)中应用最广泛的是二进制。在二进制数中,每一位仅有 0 和 1 两个可能的数码,所以计数基数为 2。其中低位和相邻高位之间的进位关系是:“逢二进一”, 故称为二进制。

①根据 N 进制数展开的普遍形式可得任意一个二进制数均可展开为:

②并可利用上式计算出任一二进制数所表达的十进制数的大小:


 上式中分别使用下脚注 2 和 10 表示括号里的数是二进制数和十进制数。有时也用 B( Bima-ry)和 D( Decimal)代替 2 和 10 这两个脚注。

🎈(3)八进制:

 八进制数的每一位有 0~7 八个不同的数码,在二进制数中,计数的基数为 8。其中低位和相邻高位之间的进位关系是:“逢八进一”, 故称为八进制。

①根据 N 进制数展开的普遍形式可得任意一个八进制数均可展开为:

②并可利用上式计算出任一八进制数所表达的十进制数的大小:


有时也用 O(Oetal)代替下脚注 8,表示八进制数。

🎈(4)十六进制:

 十六进制数的每一位有十六个不同的数码,分别用 0~9.A(10)、B(11) .C(12)、D(13)、E(14)、P(15)表示。在十六进制数中,计数的基数为 16。其中低位和相邻高位之间的进位关系是:“逢十六进一”, 故称为十六进制。

①根据 N 进制数展开的普遍形式可得任意一个十六进制数均可展开为:

②并可利用上式计算出任一十六进制数所表达的十进制数的大小:


 式中的下脚注 16 表示括号里的数是十六进制数,有时也用 H( Hexadecimal)代替这个脚注,0X 表示前缀。

🎈(5)不同进制数的对照表:

小拓展:

  1. 一位八进制可以表示三位二进制数:解读:  因为三位二进制最小是 000b,最大是 111b,其范围恰好在 0-7,构成了八进制一位。

  2. 一位十六进制可以表示为四位二进制:解读:  十六进制数的进率是 16,二进制数的进率是 2,且 16=2^4,说明二进制数连续进位 4 次,等效于 16 进制数进 1 位。这么说可能不好理解,那么举个例子吧,比如 15+1=16,用二进制表示就是 1111+1=10000,用十六进制表示就是 F+1=10。这也就说明了一位十六进制数对应四位二进制数了



🔞2.不同进制间的转换:

🎈(1)八进制,二进制,十六进制转换为十进制:

  都可根据上述介绍十进制的时候讲解的——多位任意进制数展开式的普遍形式进行转换,即按位权展开式。


🎈(2)十进制转换为二进制,八进制,十六进制:

  十进制整数转换 R 进制(R 可以是任何整数,比如 2,8,16)整数,方法就是除 R 取余。

①十进制转换为二进制:

  十进制整数转换为二进制方法:除二取余,从下往上倒序排序!



  十进制小数转换为二进制方法:乘二取整,从上向下顺序排序!


②十进制转换为十六进制:

  十进制数为整数时,除 16 取余;  十进制数为小数时,乘 16 取整。    (具体步骤拟同十进制转换为二进制!)

③十进制转换为八进制:

  十进制为整数时,除八取余;  十进制为小数时,乘八取整。    (具体步骤拟同十进制转换为二进制!)


🎈(3)二进制转换为十六进制:

  只要从低位到高位将整数部分每 4 位二进制数分为一组并代之以等值的十六进制数,同时从高位到低位将小数部分的每 4 位数分为一组并代之以等值的十六进制数,即可得到对应的十六进制数。


注意:

若二进制数整数部分最高一组不足 4 位时,用 0 补足 4 位; 小数部分最低一组不足 4 位时,也需用 0 补足 4 位。


🎈(4)二进制转换为八进制:

  只要将二进制数的整数部分从低位到高位每 3 位分为一组并代之以等值的八进制数,同时将小数部分从高位到低位</font>每 3 位分为一组并代之以等值的八进制数,即可得到对应的八进制数。


注意:

二进制数最高一组不足 3 位或小数部分最低一组不足 3 位时,仍需以 0 补足三位!

🎈(5)十六进制转换为二进制:

  转换时只需将十六进制数的每一位用等值的 4 位二进制数代替即可!



🎈(6)八进制转换为二进制:

  转换时只需将八进制数的每一位用等值的 3 位二进制数代替即可!



🎈(7)八进制与十六进制之间的转换:

  第一种:先转成二进制然后再相互转换;  第二种:先转成十进制然后再相互转换!


建议:先将八进制转换为对应的二进制,再将二进制转换为十六进制!

Python 关于这四大进制表示及转换的实现:

- 很快就出!

3.In The End!


从现在做起,坚持下去,一天进步一小点,不久的将来,你会感谢曾经努力的你!


本博主会持续更新爬虫基础分栏及爬虫实战分栏,认真仔细看完本文的小伙伴们,可以点赞收藏并评论出你们的读后感。并可关注本博主,在今后的日子里阅读更多技术文!


如有错误或者言语不恰当的地方可在评论区指出,谢谢!如转载此文请联系我征得本人同意,并标注出处及本博主名,谢谢!!

发布于: 2022 年 06 月 08 日阅读数: 41
用户头像

孤寒者

关注

同名微信公众号【孤寒者】 2021.11.09 加入

HDZ核心组成员 华为云享专家、Python全栈领域博主 CSDN原力计划作者、CSDN全栈领域优质创作者 专注分享Python领域原创系列文章,如Python爬虫、Django、tornado、flask等。

评论

发布
暂无评论
程序猿必备的数电知识,快来看看你掌握多少!(建议收藏)_进制转换_孤寒者_InfoQ写作社区