位址計算位元數

1)一個位址是幾位元數??

2)若一個位址從0x3F0000~0x3F3FFF , 那這長度是多少?

3)若一個長度為16K x 16 bit , 請問這是什麼意思?

是指二進制還是什麼嗎 ??

Update:

4) 為什麼1K= 1024 = 2的10次方?

3 Answers

Rating
  • sponge
    Lv 6
    7 years ago
    Favorite Answer

    1)

    如同意見大大所言,看硬體的定址能力

    不過這裡指硬體應是 storage, 不是整個 CPU (含 ALU, control unit 等)

    但應用程式看到的位址應該是由虛擬記憶體大小決定

    如 32-bit 作業系統只支援 4GB 虛擬記憶體

    裝在 64-bit CPU 硬體上,定址能力也只有 32 位元

    2)

    意見大大已經給出完整答案

    0x3F3FFF - 0x3F0000 + 1 = 0x004000 (Bytes), 是 16KB

    3)

    請參考意見大大的答案,非常完整

    4)

    2 的次方在電腦裡最大好處是

    以「位移」代替除法運算,大大提升效能

    就跟人類喜歡「整數」也就是「百」、「千」等

    因為人用的是十進位,一眼把數字切兩段就看出幾個「百」

    而電腦用的是二進位,當然選用二的次方取得這種效率

    恰好 2 的 10 次方是 1024 很接近 1000

    於是定 1024 為 1KB 電腦與人雙方都能接受

    不過也由於數字太接近而讓我們常混淆,到底 K 是 1024 還 1000

    希望如上回答對您有幫助!

  • 7 years ago

    2. Answer = 0x3F3FFF - 0x3F0000 + 1 (Bytes)

    4. 看也知道電腦會喜歡後面那個。

    2014-09-20 23:23:07 補充:

    4. 電腦沒有感情 哪一個都不喜歡 只有我的電腦感情豐盛 去只愛跟我做對 所以她一定是喜歡後面.

  • 卸貨
    Lv 5
    7 years ago

    1. 誰知道,要看你硬體的定址能力吧?

    2. Answer = 0x3F0000 - 0x3F3FFF + 1 (Bytes)

    3. 意思就是 長度 = 16*1024 * 16 (bits)

    4. 因為對於數位電腦來說,1024 是個很好的整數,就像我們算錢的時候喜歡一百一百算,不喜歡零頭是一樣的。

    1024 以二進位表示為:10000000000

    1000 以二進位表示為:1111101000

    看也知道電腦會喜歡前面那個。

    2014-09-20 22:58:28 補充:

    哈哈,打太順了!

    我剛剛才發現我第二題居然是小減大耶。

    不過 26535 大大提示的第四題我就不懂了,為什麼電腦會比較喜歡 1111101000 而不是 10000000000?

Still have questions? Get your answers by asking now.