矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 8767|回复: 4

抛瓦:再说说2-10-16进制

[复制链接]
发表于 2007-7-12 11:00:17 | 显示全部楼层 |阅读模式
大家从抛砖中,已经初步看见只要给某个口,例如51机的P1口加上一个8位二进数,这个口的各个引脚就会呈现或是0:对应地电位,或是1:对应高电位,从而使得接在口线上的二极管或亮或灭,如果再通过相应晶体管推动继电器、电磁阀,那不是就可能启动电动机或打开暖气?那可就是真正的控制了!
    实际上,在单片机(电脑也是一样)里面来回传递,加工的信息都是二进制数码也就是由0和1组成10110010这样的数:你打开电脑机箱往往看见光驱软驱都是用几十根并排一起带子一样的数据线,里面就有一些线在同时各自都在传送“0”“1”的数据。那么2呢?因为二进制是“逢2进1”,所以对应10进数的2,他要进到下一位成为10,类推,10进制3为二进制11,10进位4为二进制100:因为有两次逢二进一;尽管用二进制来手工计算你的银行存款是根本没有必要的愚蠢举动,但是计算机这个笨蛋确十分乐意这样做,因为它只能识别这样的数码,并且不知疲劳地反复进行惊人次数地运算。
    除了机器内部只能跑二进数以外,为了单片机编程的需要,我们会利用华夏祖先的老发明:16进数,什么?中国人发明?当然啦,在第一台计算机出现之前的几百上千年,老祖宗们不都是一直用16两制的杆秤做买卖?。。。16进,就是说直到15两,还只能是不到1斤,进不了位,非要16才行,那么16进有何优点?且不说16两秤易于对分,好算账;电脑中的16进数很容易和二进数转换,而且又接近10进数的计数方式,比直接写一大串0,1更容易不出差错,所以,要鼓捣单片机,非得明白这个不可。
    下面让我们写出从0到16的10进数,2进数,16进数的表示:
10进数    2进数      16进数
0            0000              00
1            0001              01
2            0010              02
3            0011              03
4            0100              04
5            0101              05
6            0110              06
7            0111              07
8            1000              08
9            1001              09
10          1010              0A
11          1011              0B
12          1100              0C
13          1101              0D
14          1110              0E
15          1111              0F
16         10000             10
   10进数的最右端第0位--最低位(电脑行话叫LSB)和往左的第1位,第2位,第3位
上的1分别代表  1,10,100,1000;
  2进数则是代表1, 2, 4, 8;8位2进数11111111能表示最大的正整数是255,
16进数则是代表1, 16,256,4096;4位16进数FFFF能表示最大的正整数是65535;也就是说如果用8位单片机进行数学计算,如果不采取措施,计算结果只能限定在255以内,为了计算更多位数,可以采用多字节计算。(1个8位的2进数,或1个2位的16进数,它的数据宽度为1个字节或1B=1Byte)
      单片机中,编程时经常用到2位16进数,因为16进数的每1位都和上列那样和4位2进数对应,所以16进数和2进数的转换很容易,只要你记住上面那个16进00-0F与2进0000-1111的对应关系,把两者直接代换即可,如16进78换成2进就是0111 1000。(不比记忆英语单词难吧?)
因为2进数在某些运算情况比较16进更直观,所以也有应用,特别是涉及按位逻辑运算时候,你只需死死记住:2进数“1”逻辑“或”另一位不管什么2进数,结果都是“1“,2进数”0“逻辑“与”另一位不管什么2进数,结果都是“0”。
   为了区别程序中一个数码到底是2进数,10进数,还是16进数,在书写程序时常常用0b10110011表示2进数,1011表示10进数,0xB2表示16进数。对于较大数值的数制转换,其实现在你就用电脑操作系统自带的计算器好了:开始-> 程序->附件
->计算器 ->科学型然后输入数据,选择上面的进制就好了。
   以上有些枯燥,但是要学那个鬼单片机,不得不知道这些个乱七八糟的东西。

[ 本帖最后由 wey05 于 2007-7-12 11:04 编辑 ]
     
发表于 2010-7-30 15:08:41 | 显示全部楼层
我是数码菜菜,进来学习一下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-4-5 22:10:00 | 显示全部楼层
基本的基本,学单片机不可不知
回复 支持 反对

使用道具 举报

     
发表于 2011-4-6 08:43:15 | 显示全部楼层
但还在百度上有不少的XX在问单片机中怎么把二进制转换为十进制的或者十六进制的……
回复 支持 反对

使用道具 举报

发表于 2013-4-4 13:57:13 | 显示全部楼层
计算机大厦的地基
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-30 05:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表