伊莉討論區

標題: 有關C++記憶體位址算法 [打印本頁]

作者: b2581167    時間: 2018-6-10 05:06 PM     標題: 有關C++記憶體位址算法

提示: 作者被禁止或刪除 內容自動屏蔽
作者: mdlin    時間: 2018-6-10 10:29 PM

你的觀念上有些問題,每一個數字是4 bit ,我不知道你所說的是什麼!
記憶體的算法要看你在什麼樣的平台上,這跟CPU的特性有關。這要看CPU是如何定址的。

作者: johnwanz    時間: 2018-6-11 08:49 AM

你應該要先查一下計算機結構.

CPU的存取介面主要可分為, 位址線, 資料線.
位址線, 表示可以區分出幾個記憶體位址;
而資料線, 代表每個位址一次可以讀取多寬(bits)的資料.
讀一個byte, 兩個bytes, 四個bytes, 皆是基於此概念的變化.
(一個byte可能全部位址線32b都要用, 一次讀四個bytes, 只需要30條位址線)

一個0x0CCCCCC4位址, 可以一次存取最高位址線寬度的資料量依據其位址線及資料線寬度而定. 還有可能因為不同的指令, 可以在硬體一次讀4bytes時候, 只篩選出指令要的一個byte或兩個bytes.

你所謂的重點,
"每一個單位是以1byte起跳,也就是說它還有隱藏2個bits沒顯示",
其實沒法看懂你的意思, 因為不是正確的邏輯,
所以這個思考模式, 不理解你想表達的細節是什麼情況.
作者: tryit244178    時間: 2018-6-12 12:00 PM

本帖最後由 tryit244178 於 2018-6-12 12:06 PM 編輯

是不是bit跟byte的單位搞錯了?1Byte = 8bits。記憶體位址則是0CCCCCC4 跟 0CCCCCC5 差1Byte




作者: z1090128    時間: 2018-6-17 11:42 PM

位址通常都要看相關記憶體的單位,像在一些單晶片上一個位址是2 bytes
作者: kuolung1    時間: 2018-6-18 07:58 PM

應該沒有問題才對,因為 0xccccc4 是指一個位址,1 byte , 4個 byte 也是可以指到同一個位址的,
作者: titanping    時間: 2018-7-9 11:58 AM

0CCCCCC4是第一byte  0CCCCCC5是第二byte  到底有何問題?
作者: love88131496    時間: 2018-7-13 08:49 PM

提示: 作者被禁止或刪除 內容自動屏蔽




歡迎光臨 伊莉討論區 (http://kancolle.eyny.com/) Powered by Discuz!