目录
- 一、数的进制
- (1)十进制:D
- (2)二进制:B
- (3)十六进制:H
- (4)八进制:O/Q
- 二、其他进制转十进制
- (1)二进制转十进制
- (2)十六进制转十进制
- (3)八进制转十进制
- 三、二进制与十六进制/八进制进行转换
- 四、考法
一、数的进制
(1)十进制:D
数值范围是:0、1、2、3、4、5、6、7、8、9
(2)二进制:B
数值范围是:0、1
将十进制 2591 转为 二进制是多少?
从下往上取余数,化成二进制为 101000011111.
(3)十六进制:H
数值范围是:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F
将十进制 690 化为十六进制为多少?
从下往上取余数,化成十六进制为 2B2.
(4)八进制:O/Q
数值范围是:0、1、2、3、4、5、6、7
将十进制 195 化为八进制为多少?
从下往上取余数,化成八进制为 303.
二、其他进制转十进制
(1)二进制转十进制
将二进制 1011101 化为十进制为多少?
从最右边开始算,二进制就先乘二的零次方,次方逐步递增。
(2)十六进制转十进制
将十六进制 6E2 化为十进制为多少?
从最右边开始算,十六进制就先乘十六的零次方,次方逐步递增。
(3)八进制转十进制
将八进制 731.42 化为十进制为多少?
从小数点左边第一个开始算【次方为0】,向左边次方逐步递增,向右边次方逐步递减。
三、二进制与十六进制/八进制进行转换
十六进制中,最大的数值表示为F,将F化为二进制为 1111,也就是说十六进制对应二进制的范围为 0000-1111;【四位】也就是说,可以将二进制的数值从右到左划分为4位一组,例如二进制 10001110,可以划分为 1000、1110这两组,每组对应化为十进制,多出十的部分用A-F表示即可,这两组算出来分别位8、E,所以最后二进制 10001110 化为十六进制为 8E.
在数值的最左边(高位)加0,是不影响数值的大小的,所以当位数不够时,在最前方补0就行了。
八进制中,最大的数值为7,将7化为二进制为 111,也就是说八进制对应二进制的范围为 000-111;【三位】也就是说,可以将二进制的数值从右到左划分为3位一组,例如二进制 10001110,由于位数不够在前面补0,可以划分为 010、001、110这三组,每组对应化为十进制,这三组算出来分别为2、1、6,所以最后二进制 10001110 化为八进制为 216.
四、考法
考法一:不同数制之间的直接转换;
考法二:计算内存容量/芯片数量
考法一在文章上面已经分析过了,这里分析考法二之前需要先理清几个概念。
①地址:内存按约定的大小划分成很多块,每块都有一个编号<按字节大小划分>
②字节是Byte,位是bit。一个字节等于八个二进制位,大写的B表示一个字节,小写的b表示一个二进制位,即1B=8bit。
③字:CPU一次能处理多少二进制呢,这就是一个字,它的长度就是字长(位)。【与硬件设备有关,32位、64位、128位】
常用的单位(存储):
1个二进制位可表示为0、1,共2个;
2个二进制位可表示为00、01、10、11,共4个;
3个二进制位可表示为000、010、001、100、110、101、011、111,共8个;
4个二进制位可表示为0000、0001、0010、0100、1000、1100、1010、0110、0011、0101、1001、1110、0111、1011、1101、1111,共16个;
n个二进制位可表示为 2的n次方个。
单位之间都是相差2^10,即1024.
1B = 8bit
1KB = 2^10B = 1024B
1MB = 1024KB = 2^20B = 1024*1024B
1GB = 1024MB = 2^20KB = 2^30B = 1024 * 1024 * 1024B
1TB = 1024GB = 2^20MB = 2^30KB = 2^40B = 1024 * 1024 * 1024 * 1024B
例题:内存按字节编址从 A5000H 到 DCFFFH 的区域其存储容量为 ___.
解析:举个栗子,货位1到货位4的区域存储量为多少?那肯定是4对吧,货位1、货位2、货位3、货位4,共4个,怎么算的呢?4-1+1=4.
同理,从 A5000H 到 DCFFFH 的区域其存储容量怎么算? 可得 DCFFF - A5000 +1【这里一看就是十六进制,因为数的后面都有个H,这里注意不要把H列入计算,H是表示十六进制】
这里算出来结果为 38000,结果还是十六进制,我们需要化成二进制为 0011 1000 0000 0000 0000.后面的10个0可去掉直接写成KB,还剩下11100000,化成十进制为
所以最后的结果为 224KB.