大小端存储方式和按字按字节寻址方式

首先理解单位

1位 = 1比特,即一位二进制数,能够表示为0或1。spa

1字节( byte,简写B ) = 8位( bit )code

\(1KB = 2^{10}B\)内存

\(1MB = 2^{10}KB = 2^{20}B\)it

\(1GB = 2^{10}MB = 2^{20}KB = 2^{30}B\)table

对于字长为8位的计算机,1字 = 1字节。对于字长为16位的计算机,1字 = 2字节。32位和64位同理,再也不赘述。class

1字节有8位二进制数,范围是 0000 00001111 1111,换算为16进制则是 0x000xFF,也就是说,两位16进制数便是1个字节。二进制

大小端存储方式

假设有一个4字节数据为0x12 34 56 78,其中0x12是高字节,0x78是低字节(这里不理解能够想一想十进制,对于一个十进制数(如21),十位是高字节,个位是低字节),将其存放于地址0x4000 8000中,则:数据

内存地址 0x4000 8000(低地址) 0x4000 8001 0x4000 8002 0x4000 8003(高地址)
大端(大尾) 0x12(高字节) 0x34 0x56 0x78(低字节)
小端(小尾) 0x78(低字节) 0x56 0x34 0x12(高字节)

大小端还有另外一种说法是大小尾,也就是尾部的大小,这样说更加容易让人理解。计算机

按字寻址和按字节寻址

计算机中传输地址信息是用地址线传输的,有n根地址线,则能够传输 \(2^n\) 字节地址。tab

设有一个1MB容量的存储器,字长为32位,问:

  1. 按字节编址须要多少条地址线?寻址范围是多少?寻址范围大小是多少?

    \(1MB\) = \(2^{20}B\)

    1B即为1字节,所以须要 20 根地址线。寻址范围是 \(0\)\(2^{20}-1\)。寻址范围大小是\(2^{20} = 1M\)

  2. 按字编制须要多少条地址线?寻址范围是多少?寻址范围大小是多少?

    \(1MB\) = \(2^{20}B\)

    1字 = 32位 = 4字节 = 4B

    \(\frac{2^{20}}{2^2} = 2^{18}\)

    所以须要18根地址线。寻址范围是 \(0\)\(2^{18}-1\)。寻址范围大小是\(2^{18} = 1M\)

相关文章
相关标签/搜索