聊完進制轉換後,今天來唸負數定義的部分。
最常見兩種電腦都有在用的
無號數及有號數
3bits可以存的數量為8個,表示的數字範圍
無號數(沒有正負之分),表示範圍 0 到 2^3-1
0到7
有號數 -2^(3-1) 到 2^(3-1)-1
-4到3
有號數表示法主要有三種:符號大小值、一補數、二補數
Two's Complement 二補數法
特點:
1.清楚辨別負數(看到最左邊是1就是表示負數)
2.正負相加(=相減)可以直接沿用正數相加的電路,不用另外建一個新的
原理: 8在3個bit裡記不起來,因此等於x-y
3.比較大小的電路要重新設計
4.只有抽換負數位置
5.二補數的負數和對應到binary的數相減會是總共可以儲存的數量(ex: 7-(-1)=8,所以7會對應-1)
- 相加
- 一般二進位的方式
相加出來是9(1001),但3bit記不了這麼多,將最左邊的刪掉後結果就是1
- 表示二補數負數的方法
a. 右到左,看到1之後反過來抄
b. 將n個bit可以存的數量和要顯示的負數相加,寫出結果
Excess Notation 表示法
特點:
1.辨別負數相反(看到最左邊是0就是表示負數)
2.Binary轉Excess比較大小的電路不用重新設計,(000-111)表示小到大
3.正和負責數字位置都要移動,將0平移到對應的最左邊第一個為1的數字位置上
4.相加比較複雜,相加後要再加可存數量/2(對電腦來說只是最左一個數相反)
原理: 因為全部數字都平移,因此相加之後想要拿到對應的數也要一起平移(8已經超出範圍所以不存在)
- 將對應excess的數字相加
- 去掉最左邊無法儲存的地方,並再加上可存空間的數量/2,這裡的範例是+4(001=1,1+4=5,因此答案是101)
p.s.加4就是最左邊數字交換(1變0,0變1)
分類會依照第一篇介紹的分類架構來進行
由於是將學習過程記錄下來,如果有任何錯誤歡迎糾正
以下參考連結在學習過程中覺得非常有幫助:
-進制簡介
-台大線上課程