資料表示法:位元、位元組與數值
字組(word)
/ wurd /
字組是某個特定處理器的自然「一口」大小——它在工作暫存器裡偏好一次處理的位元數。如果位元組是你能定址的最小片段,那麼字組就是 CPU 被設計來咀嚼的舒適一口。在你可能正在用的筆電或手機上,字組是 64 位元(八個位元組);一個世代之前則是 32 位元(四個位元組)。
具體來說,字組大小通常就是 CPU 的通用暫存器有多寬,以及它能自然保存的位址有多大。在 64 位元機器上,像 rax 這樣的暫存器保存 64 位元,而記憶體位址是個 64 位元的數字,所以 CPU 原則上能觸及極大範圍的記憶體。當人們說某個處理器是「64 位元」時,他們講的就是這個字組大小——不是速度,也不是裝了多少記憶體。
要小心:「word」一詞含義多重。硬體字組大小(如上)是 CPU 的屬性,但某些軟體和檔案格式自行定義了固定的「word」(例如 Windows API 的型別 WORD 不論機器如何永遠是 16 位元)。在 C 裡,字組大小不是你直接寫出的型別;語言改為提供定寬型別,以及像 size_t、uintptr_t 這類被選來配合機器自然寬度的型別。
在 64 位元 CPU 上,一個字組 = 8 個位元組 = 64 位元。一個指標放得進一個字組,而 rax、rsp、rip 這類暫存器各有 64 位元寬。
字組大小就是 CPU 自然的暫存器與位址寬度。
「64 位元」描述的是字組大小,而非速度或記憶體容量;而軟體上的「word」(如 16 位元的 WORD 型別)可能與硬體字組不一致,所以務必確認指的是哪一個。
又稱
另見