iT邦幫忙

0

Unsigned and Signed Binary Numbers (二進位數字)

  • 分享至 

  • xImage
  •  

閱讀時間: 15分鐘

在programming language世界中,數字可以用不同的形式表達包括二進制(Binary)、十進制(Decimal)、十六進制(Hexadecima)等等

現在就為大家講解一下有關二進位數字的Unsigned興Signed的分別。
Unsigned就是沒有符號的意思,那就是Unsigned的數字不會有負數而是只有正數。
Signed就是有符號的意思,那就是Signed的數字會有負數和正數。

https://ithelp.ithome.com.tw/upload/images/20200103/20119569HQmcLs2g8r.jpg

從上面的圖,可以看到Binary Number Representation可以分為2類分別是Unsigned Representation 和 Signed Representation。
而在Signed Representation之下,可以分成3類,分別是Sign-Magnitude form,
1’s complement form, 2’s complement form。

Unsigned Representation

沒有符號的表達方式就是指沒有負數,而最小的值就是0 (Zero)。
而這種表達方式是一不含糊的,因為每個數字都只是對應一個Binary Number。
假設是N bit的數字,它的範圍就是0 到(2n-1)。

例子1
用Unsigned Representation (Binary Number) 來表達十進位的數字 20。
(20)
= 10100
可以用5 bit來表達十進位的數字 20。

Sign-Magnitude form

會用第一個bit來表達正數或負數,
第一個bit是0就是正數,而第一個bit是1就是負數。
要注意,這一類的表達方式會出現2個0 (Zero),-0 (例子: 1 000) 及 +0(例子:0 000)。
第二個bit之後的表達方式興Binary Number表達方式一樣。
假設是N bit的數字,它的範圍就是-(2n-1)到(2n-1)。

例子2:
用Sign-Magnitude form (Binary Number) 來表達十進位的數字 20。
(20)
= 0 10100
用6 bit來表達十進位的數字 20。

(-20)
= 1 10100
用6 bit來表達十進位的數字 -20。

1’s complement form

會用第一個bit來表達正數或負數,
第一個bit是0就是正數,而第一個bit是1就是負數。
要注意,這一類的表達方式會出現2個0 (Zero),-0 (例子: 1 111) 及 +0(例子:0 000)。
假設是N bit的數字,它的範圍就是-(2n-1)到(2n-1)。

例子3:
用1’s complement form (Binary Number) 來表達十進位的數字 20。
(20)
= 0 10100
用6 bit來表達十進位的數字 20。

(-20)
= 1 01011
用6 bit來表達十進位的數字 -20。

2’s complement form

會用第一個bit來表達正數或負數,
第一個bit是0就是正數,而第一個bit是1就是負數。
要注意,這一類的表達方式只出現1個0 (Zero),0 (例子: 0 000)。
假設是N bit的數字,它的範圍就是-(2n)到(2n-1)。

例子4:
用2’s complement form (Binary Number) 來表達十進位的數字 20。
(20)
= 0 10100
用6 bit來表達十進位的數字 20。

(-20)
= 1 01011 + 1
= 1 01100
用6 bit來表達十進位的數字 -20。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言