多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
【16.1 十进制与十六进制各自的应用场合。】 C语言程序里只用了十进制和十六进制这两种书写格式,有的初学者会问,为什么没有用二进制?我的回答是:不是没有用二进制,而是十六进制已经代表了二进制,因为十六进制就是二进制的缩写形式,所以可以把十六进制和二进制看作是同一个东西。 十进制和十六进制各自有什么应用场合?十六进制方便人们理解机器,通常应用在配置寄存器,底层通讯驱动,底层IO口驱动,以及数据的移位、转换、合并等场合,在底层驱动程序方面经常要用到。而十进制则方便人们直观理解数值的大小,在程序应用层要经常用到。总之,进制只是数据的表现形式而已,不管是什么进制的数,最终经过编译后都可以看做是二进制的数据。 【16.2 十进制与十六进制相互转换的方法。】 十进制与十六进制如何相互转换?其实很多教科书上都有介绍它们之间如何通过手工计算进行转换的方法,这种方法当然是有助于我们深入理解数据的含义和转换关系,有兴趣的朋友可以自己找相关书籍来看看,但是在实际应用中,我本人是从来没有用过这种手工计算方法,而我用的方法是最简单直接的,就是借助电脑自带的计算器进行数制转换即可。现在把这种方法介绍给大家,以WIND7系统的电脑为例来讲解详细的操作步骤。 ![](https://img.kancloud.cn/a1/4d/a14d79742da3c4ea0f441cf55f4bd6e8_412x203.png) 图16.2.1.1 点击“所有程序”选项切换到系统自带程序的窗口 ![](https://img.kancloud.cn/6a/1d/6a1d4106c2b2b6ee860d6567c84c9a4c_410x286.png) 图16.2.1.2 在“附件”子菜单下点击“计算器”启动此软件 ![](https://img.kancloud.cn/07/0f/070fc8ab12657da8431e185ac5194881_228x323.png) 图16.2.1.3 已启动的“计算器”软件界面 第一步:打开电脑自带的计算器。 点击电脑左下角“开始” 菜单,在菜单中点击“所有程序”选项切换到自带程序的窗口,在此窗口下,再点击“附件”的文件夹图标,在“附件”子菜单下点击“计算器”启动此软件。 \----------------------------------步骤之间的分割线---------------------------------------- ![](https://img.kancloud.cn/f4/f3/f4f39a7172c8998d1d9ae2adbe8b19ad_227x323.png) 图16.2.2.1 把“计算器”的主界面切换到“程序员”界面 ![](https://img.kancloud.cn/f2/c9/f2c914370744887db12f0e4368c36913_424x388.png) 图16.2.2.2 已打开的“程序员”界面 第二步:把“计算器”的主界面切换到“程序员”界面。 点击打开左上角“查看”的下拉菜单,在下拉菜单中选择“程序员”选项。 \----------------------------------步骤之间的分割线---------------------------------------- ![](https://img.kancloud.cn/7f/b6/7fb6871aa37c23b35bc15920721663e0_420x388.png) 图16.2.3.1 在十进制的选项下输入十进制的数据 ![](https://img.kancloud.cn/e6/72/e6723a0ef62d30113e656ef296ca495a_423x388.png) 图16.2.3.2 把十进制的数据转换成十六进制的数据 第三步:十进制转换成十六进制的方法。 点击勾选中“十进制”选项,在此选项下输入十进制的数据,输入数据后,再切换点击勾选“十六进制”,即可完成从十进制到十六进制的数据转换。比如输入十进制的“230”,切换到十六进制后就变成了“E6”。 \----------------------------------步骤之间的分割线---------------------------------------- ![](https://img.kancloud.cn/85/28/852831e3b4b26cd6aff2010d16aa9102_419x391.png) 图16.2.4.1 在十六进制的选项下输入十六进制的数据 ![](https://img.kancloud.cn/4f/60/4f60f86331ac35da8e15e033d76c92e0_422x388.png) 图16.2.4.2 把十六进制的数据转换成十进制的数据 第四步:十六进制转换成十进制的方法。 点击勾选中“十六进制”选项,在此选项下输入十六进制的数据,输入数据后,再切换点击勾选“十进制”,即可完成从十六进制到十进制的数据转换。比如输入十六进制的“AC”,切换到十进制后就变成了“172”。 \----------------------------------步骤之间的分割线---------------------------------------- 第五步:十六进制,十进制,八进制,二进制它们四者之间相互转换的方法。 我们看到“计算器”软件里已经包含了十六进制,十进制,八进制,二进制这四个选项,所以它们之间相互转换的方法跟上面介绍的步骤是一样的。 \----------------------------------步骤之间的分割线---------------------------------------- 【16.3 例程练习和分析。】 现在我们编写一个程序来验证上面讲到的两个例子: (1)输入十进制的230,看看它的十六进制是什么样的。 (2)输入十六进制的AC,看看它的十进制是什么样的。 程序代码如下: /\*---C语言学习区域的开始。-----------------------------------------------\*/ void main() //主函数 { unsigned char a; //定义一个变量a,并且分配了1个字节的RAM空间。 unsigned char b; //定义一个变量b,并且分配了1个字节的RAM空间。 a=230; //把十进制的230赋值给变量a,在串口助手上观察一下它的十六进制是不是E6。 b=0xAC; //把十六进制的AC赋值给变量b,在串口助手上观察一下它的十进制是不是172。 View(a); //把第1个数a发送到电脑端的串口助手软件上观察。 View(b); //把第2个数b发送到电脑端的串口助手软件上观察。 while(1) { } } /\*---C语言学习区域的结束。-----------------------------------------------\*/ 在电脑串口助手软件上观察到的程序执行现象如下: 开始... 第1个数 十进制:230 十六进制:E6 二进制:11100110 第2个数 十进制:172 十六进制:AC 二进制:10101100 分析: 通过实验结果,发现在单片机上转换的结果和在电脑自带“计算器”上转换的结果是一样的。 【16.4 如何在单片机上练习本章节C语言程序?】 直接复制前面章节中第十一节的模板程序,练习代码时只需要更改“C语言学习区域”的代码就可以了,其它部分的代码不要动。编译后,把程序下载进带串口的51学习板,通过电脑端的串口助手软件就可以观察到不同的变量数值,详细方法请看第十一节内容。