0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

进制详解:二进制、八进制和十六进制

GReq_mcu168 来源:C语言中文网 2020-08-05 10:39 次阅读

我们平时使用的数字都是由 0~9 共十个数字组成的,例如 1、9、10、297、952 等,一个数字最多能表示九,如果要表示十、十一、二十九、一百等,就需要多个数字组合起来。

例如表示 5+8 的结果,一个数字不够,只能”进位“,用 13 来表示;这时”进一位“相当于十,”进两位“相当于二十。

因为逢十进一(满十进一),也因为只有 0~9 共十个数字,所以叫做十进制(Decimalism)。十进制是在人类社会发展过程中自然形成的,它符合人们的思维习惯,例如人类有十根手指,也有十根脚趾。

进制也就是进位制。进行加法运算时逢X进一(满X进一),进行减法运算时借一当X,这就是X进制,这种进制也就包含X个数字,基数为X。十进制有 0~9 共10个数字,基数为10,在加减法运算中,逢十进一,借一当十。

二进制

我们不妨将思维拓展一下,既然可以用 0~9 共十个数字来表示数值,那么也可以用0、1两个数字来表示数值,这就是二进制(Binary)。例如,数字 0、1、10、111、100、1000001 都是有效的二进制。

在计算机内部,数据都是以二进制的形式存储的,二进制是学习编程必须掌握的基础。本节我们先讲解二进制的概念,下节讲解数据在内存中的存储,让大家学以致用。

二进制加减法和十进制加减法的思想是类似的:

对于十进制,进行加法运算时逢十进一,进行减法运算时借一当十;

对于二进制,进行加法运算时逢二进一,进行减法运算时借一当二。

下面两张示意图详细演示了二进制加减法的运算过程。

1) 二进制加法:1+0=1、1+1=10、11+10=101、111+111=1110

图1:二进制加法示意图

2) 二进制减法:1-0=1、10-1=1、101-11=10、1100-111=101

图2:二进制减法示意图

八进制

除了二进制,C语言还会使用到八进制。

八进制有 0~7 共8个数字,基数为8,加法运算时逢八进一,减法运算时借一当八。例如,数字 0、1、5、7、14、733、67001、25430 都是有效的八进制。

下面两张图详细演示了八进制加减法的运算过程。

1) 八进制加法:3+4=7、5+6=13、75+42=137、2427+567=3216

图3:八进制加法示意图

2) 八进制减法:6-4=2、52-27=23、307-141=146、7430-1451=5757

图4:八进制减法示意图

十六进制

除了二进制和八进制,十六进制也经常使用,甚至比八进制还要频繁。

十六进制中,用A来表示10,B表示11,C表示12,D表示13,E表示14,F表示15,因此有 0~F 共16个数字,基数为16,加法运算时逢16进1,减法运算时借1当16。例如,数字 0、1、6、9、A、D、F、419、EA32、80A3、BC00 都是有效的十六进制。

注意,十六进制中的字母不区分大小写,ABCDEF 也可以写作 abcdef。

下面两张图详细演示了十六进制加减法的运算过程。

1) 十六进制加法:6+7=D、18+BA=D2、595+792=D27、2F87+F8A=3F11

图5:十六进制加法示意图

2) 十六进制减法:D-3=A、52-2F=23、E07-141=CC6、7CA0-1CB1=5FEF

图6:十六进制减法示意图

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6509

    浏览量

    87557
  • 存储
    +关注

    关注

    12

    文章

    3847

    浏览量

    84639
  • 二进制
    +关注

    关注

    2

    文章

    704

    浏览量

    41245

原文标题:进制详解:二进制、八进制和十六进制

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    为什么计算机需要十六进制?简单聊聊十六进制

    实际上,计算机本身是不需要十六进制的,计算机只需要二进制,需要十六进制的是人。
    的头像 发表于 02-25 11:47 388次阅读

    如何实现二进制和BCD码数据的相互转变?

    如何实现二进制和BCD码数据的相互转变? 二进制码是将十进制数字表示为二进制数和十进制数的一种表示方法。在计算机系统中,
    的头像 发表于 02-18 14:51 389次阅读

    二进制八进制十六进制在现实当中有什么意义?

    二进制八进制十六进制在现实当中有什么意义? 二进制八进制十六进制在现实生活中有着广泛的应
    的头像 发表于 01-16 11:14 560次阅读

    10进制转换为二进制的算法

    进制转换为二进制是计算机科学中非常基础且重要的概念之一。在理解和应用计算机科学的基础知识时,掌握这个算法是至关重要的。 在开始讲解十进制转换为二进制的算法之前,让我们回顾一下十
    的头像 发表于 01-15 10:32 555次阅读

    你知道十进制二进制如何进行转换吗?

    你知道十进制二进制如何进行转换吗? 当我们提到数字系统时,最常见的是十进制系统和二进制系统。十进制是基于10的系统,而
    的头像 发表于 12-20 17:05 657次阅读

    进制十六进制二进制数制的区别

    计算机内部一般也是8位的倍数(8位= 1字节),所以每个字节可以方便地用2个十六进制数字表示。对于工程师来说,这比长的二进制数字序列更容易处理,但是计算机内部仍然是以2为基数的二进制数字系统。
    的头像 发表于 11-28 10:45 629次阅读
    十<b class='flag-5'>进制</b>、<b class='flag-5'>十六进制</b>和<b class='flag-5'>二进制</b>数制的区别

    二进制最佳接收原理 二进制最佳接收机的实现形式有哪两种?

    二进制最佳接收原理 二进制最佳接收机的实现形式有哪两种? 二进制最佳接收原理是计算机通信中的重要概念,它是指在二进制通信中通过一定的方法,使接收机在信号传输过程中能够准确、可靠地接收到
    的头像 发表于 11-27 16:19 555次阅读

    不同的进制系统之间如何相互转换

    二进制八进制、十进制十六进制是四种常见的进制系统,它们分别使用2、8、10、16个不同的符号来表示数值。
    的头像 发表于 11-10 11:50 745次阅读
    不同的<b class='flag-5'>进制</b>系统之间如何相互转换

    串口接收的是字符型的十六进制如何转换为二进制后控制相应的IO口?

    串口接收的是字符型的十六进制如何转换为二进制后控制相应的IO口
    发表于 10-16 06:41

    M451如何丢弃函数的二进制代码填入SRAM的二进制代码

    应用程序 : 示例代码演示了如何丢弃函数的二进制代码, 然后填入 SRAM 的二进制代码, 然后调用它 。 BSP版本:M451系列BSP V3.01.001 硬件: 任何 M451 系列板块
    发表于 08-30 07:35

    如何丢弃函数的二进制代码填入SRAM的二进制代码?

    应用程序 : 示例代码演示了如何丢弃函数的二进制代码, 然后填入 SRAM 的二进制代码, 然后调用它 。 BSP版本:M451系列BSP V3.01.001 硬件: 任何 M451 系列板块
    发表于 08-23 06:34

    Arduino二进制骰子

    电子发烧友网站提供《Arduino二进制骰子.zip》资料免费下载
    发表于 07-04 10:13 0次下载
    Arduino<b class='flag-5'>二进制</b>骰子

    二进制数开源分享

    电子发烧友网站提供《二进制数开源分享.zip》资料免费下载
    发表于 06-26 11:40 0次下载
    <b class='flag-5'>二进制</b>数开源分享

    浅谈PLC中常用进制及相互转换方法

    BCD码是用四位二进制表示一位十进制数,所以转换方法类似二进制十六进制“取四合一”法,四位组合后转成十进制得到的就是十
    发表于 06-10 07:11 603次阅读
    浅谈PLC中常用<b class='flag-5'>进制</b>及相互转换方法

    UltraEdit十六进制编辑器

    UltraEdit不仅仅是一个文本编辑器,它还包括十六进制编辑器模式,有时也称为二进制文件编辑器或字节编辑器。 关键的十六进制编辑功能 十六进制编辑器允许编辑任
    的头像 发表于 05-28 14:16 2142次阅读
    UltraEdit<b class='flag-5'>十六进制</b>编辑器