二进制数及其他
如图 4。
16 8 4 2 1
1 0 1 1 0
图 4 二进制数转换为十进制数的例子
我们只要把数值是 1 的位的权加起来就可以得到对应的十进制数,即 16+4+2=22,完全一样。但是比列
式子快速的多了,如果熟悉了每一位的权之后我们都可以心算,快速的算出结果为 22。
接下来讲十进制数转换为二进制数的例子,把十进制数 55 转换为二进制数。开始运算之前先把图 3
画在草稿纸上,然后开始填 1,首先,55 在 64 和 32 之间,所以 64 处不能是 1,我们在 32 处写 1,这个
1 的权是 32,那么我们还剩下 55-32=23,比 16 大,我们在 16 的位置上写 1,这时候我们还剩下 23-
16=7,接着我们就可以在 4、2 和 1 的位置上分别写一个 1,32+16+4+2+1 恰好等于 55,所以我们在 其他的位置上写 0,把这个数写出来 110111,就得到了转换后的二进制数了。整个过程如图 5 所示。
采用这种方法可以快速的实现二进制数和十进制数的相互转换,这里要提醒大家一点了,我们只需要练习十
进制数 255 以内的数据和二进制数之间的相互转换就可以了,太大的数据交给计算器来运算就好了,千万 不要为难自己,非要去计算 52369 的二进制数,那将让你失去许多乐趣的。相对于二进制数来说,我们只 要能计算 8 位以内的二进制数转换为十进制数就可,超过 8 位的还是交给计算器吧。当然了,每个人都有自 己的自由,如果某人要手工计算 32 位二进制数转换为十进制数或者把一个上亿的十进制数转换为二进制 数,我也没有办法。
在现实生活中,对于十进制数,我们自动的根据数据的大小调整数位,15 有两位有效数字,那么我
们写 15 就好,那么没有人会写成 00015 的,同样的 369 有三位有效数字,也没人会写成 00369,因为 在数字的前面加 0 不改变大小,所以我们通常是省略前面的 0。但在数字电路中有另外一种情况,譬如我们 制造好了一个电路后,能表示 8 位二进制数,那么就必须制造 8 个基本元件,每个基本元件存储一个二进制 数,那么表示任何一个数,都是这 8 个基本元件作为一个整体来表示的,这样就会遇到多余的 0,如表示十 进制数 30,那么就是 00011110,前面的 0 你不能省略,因为你不能说最前面的 3 个元件不存储数据了, 再者,电路造好之后你也不能随便的用刀砍掉一部分。所以,在我们数字电路以及单片机课程中,一般遇到 的二进制都是位数固定的,我们在写这些数据的时候一定不要省略前面的 0,那么这个固定的位数是多少呢?
8 的倍数,也就是说,一般来说都是 8 位数一组,或者是 16 位,32 位,64 位,128 位等。
针对单片机中二进制位数固定这一特点,这里有几个名词:位(bit),字节(Byte),字
(Word)。其中位就是二进制位,1 位就是一个二进制位,称为 1bit,简写 1b,1 字节代表 8 个二进制的
位,1Byte=8bit ,1 字代表 2 个字节,1Word=2Byte。Byte 可以简写作 B,我们可以得到如下公式:
1B=8b,1Word=2B=16b
随着计算机技术的发展,数据越来越多,我们还有几个单位,KB,MB,GB,TB,其关系为:
1KB=1024B= 210 B
1MB=1024KB= 220 B
1GB=1024MB= 230 B
1TB=1024GB=2 40 B
2.3 十六进制数出世
数字电路中都用二进制数,计算机中当然也用二进制数,而我们要与这些电路打交道,必然要会二进 制数,大家看看以下这几个二进制数,然后抄一遍:
第一个数:00001101
第二个数:0101001110011010 的三个数:11100101011100110011001011101111 第四个数:
1101010001111000001110110110111011100110000011100100010010011100
第一个数是 8 位,写下来没什么太大的关系,第二个数是 16 位,仔细的看一下,抄写也可以,第三个是32位,我想可能要非常吃力的才能写下来,也许还要多次才能正确的抄写下来,那么最后一个 64 位的,有人有勇气面对它吗?如果是写满了 0 和 1 的 20 张 A4 的纸呢,任是谁也会崩溃的,太苦恼了,如果每天都是 看到的都是这些数字,也只有神仙才可以做得到了。这还不算,怕的就是出错了,满目都是 0 和 1,稍微错 了一位,面目全非了,所有的工作就要重新来过。有人会说,我直接转换成 10 进制数来读写好了。但是二 进制数转换为十进制数太繁琐,谁能告诉我最后一个数对应的十进制数是多少呢?
二进制数难读,难写,数据位数多,写和读都不方便,而我们却不能不看,不能不用,因为我们不能
不用数字电路,也不能不用计算机。当问题出现了,我们就要解决它,于是出现了十六进制。 十六进制有十六个数码:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,基数是 16,
运算时逢十
二进制数 相关文章:
- 电路换算上的二进制数(12-22)
- 12位串行A/D转换器MAX187的应用(10-06)
- AGC中频放大器设计(下)(10-07)
- 低功耗、3V工作电压、精度0.05% 的A/D变换器(10-09)
- PIC16C5X单片机睡眠状态的键唤醒方法(11-16)
- 用简化方法对高可用性系统中的电源进行数字化管理(10-02)