大小端存儲方式和按字按字節尋址方式

首先理解單位

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\)

相關文章
相關標籤/搜索