Binary 从1字节转换为十六进制

Binary 从1字节转换为十六进制,binary,size,microprocessors,Binary,Size,Microprocessors,我在理解以下文本时遇到问题 8088支持1MB的外部内存。这个内存空间是 从软件的角度组织为单个字节的数据 存储在地址范围00000至fffffff的连续地址中 现在我不知道作者是如何从1Mbyte转换成FFFFF的。谁能帮帮我吗 谢谢。在描述的页面中对此进行了详细解释(8088具有相同的指令集体系结构,但引脚略有不同) 基本上,段寄存器给出一个(16位)基址,该基址乘以16,然后加上16位偏移量 而0xfffff为220-1,即10485751M字节为2^20。这意味着需要20位来表示它。范围

我在理解以下文本时遇到问题

8088
支持
1
MB的外部内存。这个内存空间是 从软件的角度组织为单个字节的数据 存储在地址范围
00000
fffffff
的连续地址中

现在我不知道作者是如何从1Mbyte转换成FFFFF的。谁能帮帮我吗


谢谢。

在描述的页面中对此进行了详细解释(8088具有相同的指令集体系结构,但引脚略有不同)

基本上,段寄存器给出一个(16位)基址,该基址乘以16,然后加上16位偏移量


0xfffff
为220-1,即1048575

1M字节为
2^20
。这意味着需要20位来表示它。范围
00000-fffffff
包含20位的所有可能值。

请区分容量和寻址。容量计数从1开始,但内存寻址从0开始(地址0为计数1)

类比。如果我们的容量是10,地址是0,那么它将是0到9

所以寻址的技巧是 最后地址=容量-1

对于容量1MB(dec),十六进制=10.0000h 对于寻址,最后一个地址是10.0000-1=F FFFF 所以1MB容量的地址是从0到F FFFF。 (记住地址0,被计数为1)