精華區beta Programming 關於我們 聯絡資訊
※ 引述《enjoydance.bbs@bbs.ntnu.edu.tw (苦力國標魔羯男)》之銘言: > ※ 引述《journeyman@kkcity.com.tw (#班布,我命令你,馬上停止)》之銘言: > > 因為CPU的通用暫存器就是這麼寬 > 樓上的答案錯誤吧...@@... > int 32 bits 並不是因為CPU的通用暫存器的緣故.. > 而是程式的定義就是設定成一個整數的數值範圍可以有2的32位元.. > 改成64位元的CPU並不會改變int的定義長度...@@ 最好是啦 若是如你這樣說,那麼定義個60-bit的整數長度不是很好 或者一半,30-bit也很棒,幹嘛多個畸零的2 那麼short, long, long long就可以簡單定義為10, 20, 40-bit 外加一個sign bit變成11, 21, 41-bit 這樣還可以對得上 1K, 1M, 1T 的通用單位,省掉書上解釋這些資料形態格式的麻煩 事實就是這些都受到CPU設計的影響 通用暫存器的寬度會決定最常用的那個資料形態的寬度 因為這樣設計的compiler編出的程式跑起來會最快 但是x86 processors又可以向下相容,一個暫存器可以劈開成兩半來用 大家永遠可以把386當成86來用,不用換compiler 才會有那種資料形態和CPU無關的錯覺 事實是,資料形態就是要跟硬體相關,才會有效率 尤其是C這種涉及system programming的語言 很久很久以前UNIVAC混用36-bit和28-bit,這兩種字寬也是相處了很多年 這不是很棒嘛!反正我愛設計多寬就設計多寬,喔耶!   -- -- ┌─────KKCITY─────┐ ◢╱ 只要你通過身份認證 ~ ◥█ bbs.kkcity.com.tw 免經驗、五人連署即開班系板 └──From:218.160.87.124 ──┘ ◥╲ 趕快為班上設個秘密基地吧! --
ji3g45j:老兄你超high的耶~其實不只int,連float 218.211.15.82 09/10 12:14
ji3g45j:也會變成64bit,高速公路都拓寬成64條了 218.211.15.82 09/10 12:15
ji3g45j:還要分成32條公路與32條路肩嗎... 218.211.15.82 09/10 12:16