當前位置:首頁 » 存儲配置 » 計算數據存儲地址

計算數據存儲地址

發布時間: 2025-07-03 18:48:29

Ⅰ 怎麼計算三維數組的存儲地址

假設數組各維的下界是不是1,二維數組A(mn)按「行優先順序」存儲在內存中,假設每個元素佔用d個存儲單元。元素a(ij)的存儲地址應是數組的基地址加上排在a(ij)前面的元素所佔用的單元數。因為a(ij)位於第i行、第j列,前面i-1行一共有(i-1)×n個元素,第i行上a(ij)前面又有j-1個元素,故它前面一共有(i-1) ×n+j-1個元素。
因此,a(ij)的地址計算函數為:LOC(aij)=LOC(a11)+[(i-1)*n+j-1]*d。
同樣,三維數組A(ijk)按「行優先順序」存儲,其地址計算函數為:LOC(aijk)=LOC(a111)+[(i-1)*n*p+(j-1)*p+(k-1)]*d。

上述討論均是假設數組各維的下界是1,更一般的二維數組是A[c1..d1,c2..d2],這里c1,c2不一定是1。a(ij)前一共有i-c1行,二維數組一共有d2-c2+1列,故這i-c1行共有(i-c1)*(d2-c2+1)個元素,第i行上a(ij)前一共有j-c2個元素。
因此,a(ij)的地址計算函數為:LOC(aij)=LOC(ac1c2)+[(i-c1)*(d2-c2+1)+j-c2)]*d。

例如,在C語言中,數組各維下標的下界是0,因此在C語言中,二維數組的地址計算公式為:LOC(aij)=LOC(a00)+(i*(d2+1)+j)*d。

Ⅱ 數據結構、數組存儲的地址怎麼計算

數組存儲地址的計算:

以二維數組為例,其他的依次類推

假設起始下標從0開始,按行存儲(總共有M行,N列):

A[i][j]=A[0][0]+(i*N+j)*L

這地方的L是數組中的一個元素所佔的存儲空間。

或:

即使A[8][5]前面有多少個元素,

行下標i從1到8,列下標j從1到10,所有A[8][5]之前共有n7*10+4(74)個元素,

每個元素的長度為3個位元組,故共有3*74=222個位元組

首地址是SA,則A[8][5]地址是SA+222

(2)計算數據存儲地址擴展閱讀:

在數據的順序存儲中,由於每個元素的存儲位置都可以通過簡單計算得到,所以訪問元素的時間都相同;而在數據的鏈接存儲中,由於每個元素的存儲位置保存在它的前驅或後繼結點中,所以只有當訪問到其前驅結點或後繼結點後才能夠按指針訪問到,訪問任一元素的時間與該元素結點在鏈式存儲結構中的位置有關。

Ⅲ 32提。對於一個2kb的存儲空間,其地址可以是000H到7FFH求過程

先了解KB代表什麼,地址線:K=10,數據線:B=8位,計算方法就是地址線按照2的多少次方,數據線等於位數),然後總的存儲空間=地址線的大小*數據線的大小
所以2KB=2的10*2的3次=2的11次=2048

在了解下什麼是地址,地址的話從0000H開始數(H代表16位進制),計算方法 比如abcdH就是ax16的三次+bx16的二次+cx16的一次+dx16的零次
而2048可以看成8*16的二次,所以2048的十六位進制的編碼為0800H,而地址是從0000H開始,所以上限減一,也就是07FFH(F代表15,十六進制逢十六進一)
綜上所述,2KB存儲空間的地址可以是0000H到07FFH,共2048個可選地址(比如0000 0000 0000 0000,這就是其中一個)

熱點內容
新潔爾滅用於物體表面怎麼配置 發布:2025-07-04 05:03:28 瀏覽:826
生活中的雲伺服器 發布:2025-07-04 05:01:55 瀏覽:741
三星g6700c原始密碼是多少 發布:2025-07-04 04:49:41 瀏覽:724
網頁編程代碼 發布:2025-07-04 04:47:25 瀏覽:803
發消息時用到什麼密碼 發布:2025-07-04 04:41:47 瀏覽:978
3個密碼箱能裝多少錢 發布:2025-07-04 04:39:36 瀏覽:9
android資料庫的操作 發布:2025-07-04 04:37:35 瀏覽:167
登錄時設置密碼保存在哪裡 發布:2025-07-04 04:34:23 瀏覽:535
網站開發源碼 發布:2025-07-04 04:30:45 瀏覽:343
魔戒護衛隊是什麼配置 發布:2025-07-04 04:25:33 瀏覽:568