Zi 字媒體
2017-07-25T20:27:27+00:00
計算機概論中的數字系統,由於電腦都是記錄 1 和 0 兩個數字,所以會講到進位系統的轉換。而進行複雜的運算時,都是靠補數來運算,所以也會提到一補數和二補數。
在邏輯電路中,有個東西叫加法器,但沒有所謂的乘法器和減法器,因為減乘除其實都是靠加法實現的:減法就加上補數、乘法就連加、除法就連加補數。
一補數
減法會用到所謂的一補數。先講作法:
範例:計算 -4 的一補數。
首先先將 4 以二進位表示:$0100$。
然後將每個 1 寫成 0、每個 0 寫成 1(其實就是 NOT 運算),就會得到 $1011$。
這就是一補數的作法。
所以計算 $4-3$ 時,其實就是用 4 加上 3 的補數,也就是 $0100 + 1100$ 得到 $0001$(因為只有四個位元,所以 $10000$ 溢位變成 $0001$),換成十進位的 1。
以下列出 $\pm7$ 的表示法:
原本的數
正數
負數
0
0000
1111
1
0001
1110
2
0010
1101
3
0011
1100
4
0100
1011
5
0101
1010
6
0110
1001
7
0111
1000
然而,一補數系統中,0 居然可以被表示成正零($+0$)和負零($-0$),這造成了一些問題。
二補數
所以有了二補數系統。一樣先講作法:
範例:計算 -3 的二補數。
首先先將 3 以二進位表示:$0011$。
然後先把每個 1 寫成 0、每個 0 寫成 1,得到 $1100$。(其實就是先算一次一補數)
之後再加上一個 1,得到 $1101$。
這就是二補數的作法。
二補數常用來表示有號數,第一個位元用來記錄正負號(正號表示成 0、負號表示成 1)。以下列出 $\pm3$ 的表示法
原本的數
二補數表示法
3
0011
2
0010
1
0001
0
0000
-1
1111
-2
1110
-3
1101
延伸閱讀
1's Complement | Wikipedia
二補數 | 維基百科
寫了
5860316篇文章,獲得
23313次喜歡