電腦位元計算

2007-02-27 8:39 am
請問平常程式設計時那些1/0的位元是如何進位及計算
我是一個門外漢買了本關於C語言的書回來但是不箽位元算法很多都看不明白
如果可以請提供一些資料

回答 (2)

2007-02-27 11:51 am
✔ 最佳答案
這是電腦很基礎的技術問題。

首先,你要懂得二進位、十進位、十六進位的計算和轉換方法,才比較容易理解電腦位元計算 的原理。

然後,需要知道什麼是 Bit(位元),什麼是 Byte(位元組)?

1 Byte = 8 Bits

每一個 Bit 不是 0 就是 1。換句話說,Bit 是用二進位作為基礎。
因為,每個 Byte 是由 8 個 Bits 組成,所以,每個 Byte 的數值為 00000000 - 11111111(二進位),相等於 0 - 255 (十進位),也相等於 00 - FF (十六進位)。


Bit 這個東西,和CPU的結構有很大的關系。如果是用 C 語言來編寫軟件,在數學計算上,很多技術問題都可以不用理會。

但如果關系到比較低 Level 的電腦語言(例如:Assemble Language)或對硬件進行控制(I/O),CPU 對Bit 的處理能力就會做成很大的影響。

4Bit CPU 可以計算 0 - 15 的數式。
8Bit CPU 可以計算 0 - 255 的數式。
16Bit CPU 可以計算 0 - 65535 的數式。
32Bit CPU 可以計算 0 - 4294967296 的數式。
64Bit CPU 可以計算 0 - 18446744073709551616 的數式。

理論上 4Bit CPU 計算一條加數,只要答案不超過15,就一點問題也沒有,但在實際的情況下是不可能的。就以市面能買到的平價計數機(Calculator)為例,大部份都是用 4Bits CPU 的。你可能會問,怎應辦?一般為例,計算 1000 + 1000 這麼簡單的算術, 4Bit CPU 可能會用到幾十行指令(Assemble Language)來完成。

8 Bits 的話,指令行又會小一點。

16 Bits 的話,一行就可以了。因為,1000 + 1000的答案,還未超過 65535 這個範圍。

總括來看,你要由基礎學起,會比較得心應手一點。
2007-02-27 9:38 am
你平時計十進數阿嗎, 有 0,1,2,3,4,5,6,7,8,9. 9之後進一係10阿嗎.
二進數物得0, 1 0羅. 0 到 1, 之後加一物變 10 0羅, 再加一物變 11 0羅, 再加一物變 100 0羅, 101, 110, 111...


收錄日期: 2021-04-27 13:13:04
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20070227000051KK00171

檢視 Wayback Machine 備份