单片机使用的两大进制表示形式:十进制和十六进制。

(这里使用十进制的数据)

(这里使用十六进制的数据)

十进制一般用于运算,表示形式就是直接写,例如上面的1701。

十六进制一般用于配置单片机的寄存器,表示形式是在数字前面加0x,例如上面的0xC0 0XD0。也就是说,当你看单片机程序遇到0x开头的数据,就是表示十六进制数据。

单片机的寄存器有8位、16位和32位,也就是1个字节、2个字节和4个字节。既然设计到位,那肯定需要二进制的表示。二进制表示数据,非0即1,寄存器中的每一位,也是非0即1,根据寄存器的不同,它的每一位代表的功能不同,例如,把某个寄存器的某个位写1,就开启中断,写0,就关闭中断。看到这里,你就明白些了吧,原来就是这样控制单片机的寄存器。

就像上面说的,配置寄存器,我们一般用十六进制,那么这个十六进制怎么和二进制换算呢?这里就需要用到BCD码了。

BCD码就是8421,它是按照二进制的位置表示的,8421是代表4个位,一个字节8个位,就需要2个8421。如下图所示:

第一行表示BCD码,第二行表示一个字节,也就是一个8位的寄存器。

如何用BCD码把二进制写成十六进制?

例如一个二进制数据如下:

如上图,二进制码是:10001010,转换成十六进制是0x8A。

这个是怎么得到的?

看左边的四个位,把有1的上边的8421加起来,上图中,左边四个位只有8下面有1,所以和就是8。

看右边的四个位,把有1的上边的8421加起来,上图中,右边四个位的8和2下面是1,所以把8+2就等于10,十六进制的10就是A。

所以上面的10001010转换成十六进制是0x8A。

再来一个例子,二进制01101100转换成十六进制是0x6C。(这个你自己按照前面的方法算一下,如果算出来和我的结果一样,那恭喜你,你学会了)

十六进制基础:

另外,学单片机会经常使用WINDOWS自带的“计算器”,进行进制的转换。

我已经把这篇文章做成PDF了,你可以下载到你的电脑永久保存了:

单片机入门之进制转换(点击下载或者右键另存为下载)

16进制换成10进制 c语言 单片机,单片机入门之三种进制的转换相关推荐

  1. ipv6 16进制转成10进制的数

    /** * ipv6 16进制转成10进制的数 * @param ip 1:1:2:2:ffff:ffff:ffff:ffff * @returns Array 10进制数的数组 */ ipSrv.p ...

  2. 100元的人民币换成10元,5元,2元和1元面值

    要求:将100元的人民币换成10元,5元,2元和1元面值的,要求正好换40张,且每种至少一张,有多少种换法? #include<stdio.h> int main() { int a, b ...

  3. week3-day7 某人想将手中的一张面值100元的人民币换成10元、5元、2元和1元面值的票子。要求换正好40张,且每种票子至少一张。问:有几种换法?

    某人想将手中的一张面值100元的人民币换成10元.5元.2元和1元面值的票子.要求换正好40张,且每种票子至少一张.问:有几种换法? 条件: 面值为10.5.2.1的钞票至少各有一张: 所有面额相加为 ...

  4. 将手中的一张面值100元的人民币换成10元、5元、2元和1元面值的票子。 //要求换正好40张,且每种票子至少一张。问:有几种换法?

    #include<stdio.h> int main() {//某人想将手中的一张面值100元的人民币换成10元.5元.2元和1元面值的票子.//要求换正好40张,且每种票子至少一张.问: ...

  5. 某人想将手中的一张面值100元的人民币换成10元、5元、2元和1元面值的票子。要求换正好40张,且每种票子至少一张。 问:有几种换法? input: 无 Output:该数字小于100;

    int main() {/*某人想将手中的一张面值100元的人民币换成10元.5元.2元和1元面值的票子.要求换正好40张,且每种票子至少一张.问:有几种换法?input: 无 Output:该数字小 ...

  6. 【POJ 1200】Crazy Search(将字符映射为数字,将NC进制hash成10进制)

    题目链接 题目链接 http://poj.org/problem?id=1200 题意 原字符串有NC个不同字母,统计原字符串长度为N的子字符串个数 解题思路 将字符按ASCII码映射成数字. 将n个 ...

  7. 跟着王进老师学开发之Python篇第一季:基础入门篇-王进-专题视频课程

    跟着王进老师学开发之Python篇第一季:基础入门篇-2859人已学习 课程介绍         本季课程首先对Python简要介绍,然后演示如何搭建Python的开发环境,以及如何在IDE中调试Py ...

  8. C语言10进制写法,用c语言编写函数Htoi(s)把由16进制数成10进制的数

    满意答案 iaooifi 推荐于 2016.07.05 采纳率:53%    等级:12 已帮助:6961人 #include "stdio.h" #include "s ...

  9. 如何把单元格中 经纬度 60进制转成10进制

    PS: Format 可能具体问题具体分析,但是思路和写法代码可以参照如下. Attribute VB_Name = "LongiAndLati60To10SP1" '2015/0 ...

最新文章

  1. [个人博客作业Week7]软件工程团队项目感想与反思
  2. 数字信道化中的兔耳效应
  3. oracle错误: ORA-00600: 内部错误代码, 参数: [kkqcscpopn_Int: 0], [], [], [], [], [], [], [], [], [], [], []...
  4. Mybatis配置文件注释
  5. 浅析如何在Nancy中生成API文档
  6. Android Studio 导入 AOSP 源码
  7. whereis linux用法,whereis命令使用详解
  8. [bug解决] IndentationError unindent does not match any outer indentation level
  9. 驱动开发专家解读《寒江独钓——Windows内核安全编程》
  10. 大数据市场交易趋旺物联网平台争夺加剧
  11. USB摄像头CMOS图像传感器PCB原理图
  12. 暴风转码转超清文件_暴风影音16破解版下载-暴风影音16多开精简版(附怎么用) v9.4.1029.1111...
  13. 核心网upf作用_5G核心网关键技术研究
  14. 电压跟随器的作用及特点
  15. 利用echarts做堆积折线图
  16. HearthBuddy卡牌无法识别
  17. java报错symbol_java 报错cannot resolve symbol问题
  18. 数据库加密sqlite3
  19. switch 注册哪个服务器,switch注册教程
  20. 寻找勾股数的一种极快的算法

热门文章

  1. 2021-10-21Windows10特定环境下为小地球的解决办法
  2. 8bit 1GS/s 高速数据采集卡超宽带高速记录回放系统的分类和使用方法
  3. 语法长难句-----并列句
  4. oracle817软件下载,转载:oracle817在redhat7.0下的安装
  5. 机器人工程学习和研究的结构性失衡
  6. oracle的联合索引,oracle 优化之组合索引
  7. SMC集装阀岛在线选型软件
  8. 【Origin】Excel连接时的日期格式问题
  9. 【工控老马】电气控制与PLC技术之生产流水线小车控制程序课程设计讲解
  10. w7计算机显卡,老电脑老显卡开Windows7 Aero特效,强!