16进制换成10进制 c语言 单片机,单片机入门之三种进制的转换
单片机使用的两大进制表示形式:十进制和十六进制。
(这里使用十进制的数据)
(这里使用十六进制的数据)
十进制一般用于运算,表示形式就是直接写,例如上面的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语言 单片机,单片机入门之三种进制的转换相关推荐
- ipv6 16进制转成10进制的数
/** * ipv6 16进制转成10进制的数 * @param ip 1:1:2:2:ffff:ffff:ffff:ffff * @returns Array 10进制数的数组 */ ipSrv.p ...
- 100元的人民币换成10元,5元,2元和1元面值
要求:将100元的人民币换成10元,5元,2元和1元面值的,要求正好换40张,且每种至少一张,有多少种换法? #include<stdio.h> int main() { int a, b ...
- week3-day7 某人想将手中的一张面值100元的人民币换成10元、5元、2元和1元面值的票子。要求换正好40张,且每种票子至少一张。问:有几种换法?
某人想将手中的一张面值100元的人民币换成10元.5元.2元和1元面值的票子.要求换正好40张,且每种票子至少一张.问:有几种换法? 条件: 面值为10.5.2.1的钞票至少各有一张: 所有面额相加为 ...
- 将手中的一张面值100元的人民币换成10元、5元、2元和1元面值的票子。 //要求换正好40张,且每种票子至少一张。问:有几种换法?
#include<stdio.h> int main() {//某人想将手中的一张面值100元的人民币换成10元.5元.2元和1元面值的票子.//要求换正好40张,且每种票子至少一张.问: ...
- 某人想将手中的一张面值100元的人民币换成10元、5元、2元和1元面值的票子。要求换正好40张,且每种票子至少一张。 问:有几种换法? input: 无 Output:该数字小于100;
int main() {/*某人想将手中的一张面值100元的人民币换成10元.5元.2元和1元面值的票子.要求换正好40张,且每种票子至少一张.问:有几种换法?input: 无 Output:该数字小 ...
- 【POJ 1200】Crazy Search(将字符映射为数字,将NC进制hash成10进制)
题目链接 题目链接 http://poj.org/problem?id=1200 题意 原字符串有NC个不同字母,统计原字符串长度为N的子字符串个数 解题思路 将字符按ASCII码映射成数字. 将n个 ...
- 跟着王进老师学开发之Python篇第一季:基础入门篇-王进-专题视频课程
跟着王进老师学开发之Python篇第一季:基础入门篇-2859人已学习 课程介绍 本季课程首先对Python简要介绍,然后演示如何搭建Python的开发环境,以及如何在IDE中调试Py ...
- C语言10进制写法,用c语言编写函数Htoi(s)把由16进制数成10进制的数
满意答案 iaooifi 推荐于 2016.07.05 采纳率:53% 等级:12 已帮助:6961人 #include "stdio.h" #include "s ...
- 如何把单元格中 经纬度 60进制转成10进制
PS: Format 可能具体问题具体分析,但是思路和写法代码可以参照如下. Attribute VB_Name = "LongiAndLati60To10SP1" '2015/0 ...
最新文章
- [个人博客作业Week7]软件工程团队项目感想与反思
- 数字信道化中的兔耳效应
- oracle错误: ORA-00600: 内部错误代码, 参数: [kkqcscpopn_Int: 0], [], [], [], [], [], [], [], [], [], [], []...
- Mybatis配置文件注释
- 浅析如何在Nancy中生成API文档
- Android Studio 导入 AOSP 源码
- whereis linux用法,whereis命令使用详解
- [bug解决] IndentationError unindent does not match any outer indentation level
- 驱动开发专家解读《寒江独钓——Windows内核安全编程》
- 大数据市场交易趋旺物联网平台争夺加剧
- USB摄像头CMOS图像传感器PCB原理图
- 暴风转码转超清文件_暴风影音16破解版下载-暴风影音16多开精简版(附怎么用) v9.4.1029.1111...
- 核心网upf作用_5G核心网关键技术研究
- 电压跟随器的作用及特点
- 利用echarts做堆积折线图
- HearthBuddy卡牌无法识别
- java报错symbol_java 报错cannot resolve symbol问题
- 数据库加密sqlite3
- switch 注册哪个服务器,switch注册教程
- 寻找勾股数的一种极快的算法
热门文章
- 2021-10-21Windows10特定环境下为小地球的解决办法
- 8bit 1GS/s 高速数据采集卡超宽带高速记录回放系统的分类和使用方法
- 语法长难句-----并列句
- oracle817软件下载,转载:oracle817在redhat7.0下的安装
- 机器人工程学习和研究的结构性失衡
- oracle的联合索引,oracle 优化之组合索引
- SMC集装阀岛在线选型软件
- 【Origin】Excel连接时的日期格式问题
- 【工控老马】电气控制与PLC技术之生产流水线小车控制程序课程设计讲解
- w7计算机显卡,老电脑老显卡开Windows7 Aero特效,强!