一,简述
10进制:每一位,有10种状态(0-9),逢10进1
2进制:每一位,有10种状态(0、1),逢2进1
16进制:每一位,有16种状态(0-F),逢16进1 (为了描述方便,我们常常把一些二进制数据,转换为16进制表示)
比如:
10进制:257 = 2×10×10 + 5×10 + 7
2进制:0001 0000 0001 =
16进制: 1 0 1 = 0x101 (16进制每一位是由2进制的4位bit组成,每2个就代表一个字节)
二、拓展
问题:64KB的存储器用十六进制表示,它的最大的地址码是多少?
首先我们要搞懂 KB 是什么单位:
bit 就是位,也叫比特位,是计算机表示数据最小的单位,用小写 b 表示
byte就是字节,用大写 B 表示,8个比特 = 1个字节,即 1byte = 8bit
1B = 8b
那么存储器有64KB的容量,能有多少地址我们先算一算,然后再换算为十六进制
注意,这个64KB是十进制的
所以 64KB = 64*1024B 也就是64*1024个字节,一个字节就是一个地址,字节是计算机存储的基本单位
64是2的6次方,1024是2的10次方,64 * 1024 = 2^6 * 2^10 = 2^16 结果是2的16次方个字节(请注意了,这里还是十进制)
那么十进制转换为十六进制的前提是先转换为二进制
十进制的2的16次方,就相当于二进制的1后面跟着16个零。
1 0000 0000 0000 0000
换算成十六进制呢?二进制里面4位是十六进制中的一个位
所以十六进制是
(二进制) 1 0000 0000 0000 0000
(十六进制)1 0 0 0 0 = 0x10000
大家这样看可能就会舒服很多了,因为十六进制视角下,我们看到64KB的容量是这么大,也就是说有10000个地址,问题是,最大地址码是多少呢?别忘了,地址的开始从0开始,也就是0000,这样打个比如100个数从0开始,那么最大值就是99,那么10000个单位,从0开始,最大数(十六进制下)是多少?FFFF嘛!
---------------------
原文:https://blog.csdn.net/sinat_34943123/article/details/52890089