微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 二进制数及其他

二进制数及其他

时间:11-17 来源:互联网 点击:

六进一。为什么说十六进制数解决了二进制数读写困难,也没有十进制数转换繁琐的困局呢?因 为十六进制和二进制数相互转换非常简单,4 位二进制数对应于一位十六进制数,这样就可以把上述冗长的 二进制数转换为十六进制数。上面四个二进制数转换为十六进制数为:

第一个数:0D 第二个数:539A 的三个数:E57332EF

第四个数:D4783B6EE60E449C

当你看到上面这组数据的时候,读和写的时候要轻松的多了吧,这样我们被前面二进制数打击的信心 又回来了。那么你一定迫切的想知道二进制数和十六进制数是如何转换的吧。好吧,我们就来讲二进制数和 十六进制数的转换。

二进制数转换为十六进制数:4 位一组,分别转换;

十六进制数转换为二进制数:1 位转换为 4 位,原序排列。 在进行学习二进制数和十六进制数转换之前,先看一个表格,

表 2 十进制数、二进制数、十六进制数的对应关系

十进制数

二进制数

十六进制数

十进制数

二进制数

十六进制数

0

0000

0

8

1000

8

1

0001

1

9

1001

9

2

0010

2

10

1010

A

3

0011

3

11

1011

B

4

0100

4

12

1100

C

5

0101

5

13

1101

D

6

0110

6

14

1110

E

7

0111

7

15

1111

F

我们只要对照这个表格,就可以很轻松的进行二进制数和十六进制数的转换了。下面用具体的例子来说明。

例 1 把二进制数 1011 0110 转换为十六进制数

首先把二进制数分组

1011 0110

B 6

则二进制数 10110110 转换为十六进制数就是 B6 了。更多的位数一样的转换。

例 2 把二进制数 1110 1100 0111 0010 转换为十六进制数 把二进制数分组

1110 1100 0111 0010

E C 7 2

转换的结果为十六进制数 EC72

反过来,十六进制数转换为二进制数则反过来,直接一位变为 4 位就可以了。例如把十六进制数

A157 转换为二进制数,则

A 1 5 7

1010 0001 0101 0111

转换后的结果就是 1010 0001 0101 0111。

正因为十六进制数和二进制数的相互转换不需要进行计算,只是简单的替换就可以,所以我们在很多 场合下经常用十六进制数来代替二进制数,在学习单片机课程的时候,经常遇到十六进制数,所以必须掌握 十六进制数和二进制数的相互转换,而且要能熟练的转换。针对表 2,我建议大家就用 8421 法来记忆,数 字都很小,即使记不住,临时来计算也很快的。

二进制数和十六进制数能够相互转换,那么十进制数和十六进制数的相互转换怎么做呢?十进制数和 十六进制数可以直接相互转换,也可以用加权法,十六进制数的每一位的权是 1,16,256,4096……数 据运算量比较大,所以我们就简单的计算一下 2 位的十六进制数和十进制数的相互转换,太大的数据就不要 为难自己了,用计算器吧。我的方法是先转换为二进制数,然后再把二进制数转换为十进制数,这样手算的 速度要快些。反过来,要把十进制数转换为十六进制数,也是先把十进制数转换为二进制数,然后在转换为 十六进制数。

我们现实生活中使用十进制数,而计算机中使用二进制数,为了读写的方便,我们发明了十六进制 数,并且通过上面的学习我们也知道了如何快速的在这三种进制数据之间相互转换,应该没有上面太大的问 题了。但是还有一个问题,大家再看一看表 2,二进制、十进制、十六进制数据他们的数码,你会发现数码 有重合的部分,这就有问题了,如果出现了一个数据,如何知道是那种进制的数据呢?如

1110,145,562。可能有人会说,第一个数是二进制数,第二个和第三个数据是十进制数。但这是错误 的。就如一件衣服 200 元,如果在重庆,那么就是 200 人民币,如果是在香港买的,那么就是 200 港元, 如果你跑到英国去买,那么可能会是 200 英镑或者 200 欧元了,这可是不一样的,而且差别很大。这个时 候你再来看看 1110 和 145 这两个数,到底是什么进制的数据呢?不知道,除非做了说明。这就是我要讲 的另外一个问题,对于任何一个数字,我们必须作出说明是什么进制数据才有意义,否则我们不知道它的真

实大小。那么如何来区分这三种进制的数据呢?我们采用在数字的末尾加一个字母来表示。

二进制的英文单词是 Binary,十进制的英文单词是 Decimal,十六进制的英文单词是

Hexadecimal,所以我们就在二进制数后面加字母 B ,在十进制数后面加字母 D ,在十六进制数后面加字

母 H,这样就可以区分这三种进制的数据了。如 1010B,145D,562H 等等。因为我们现实生活中用的最 多的是十进制数,所以十进制数后的字母 D 可以省略,直接写 145,就如我们在中国买东西,标价是 200 的话默认单位就是人民币了,但二进制数和十六进制数后的字母不能省略。

2.4 负号的解决之道

以上在讨论数值的时候都只考虑了正数的情况,其实我们还

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top