黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

二補數 (2's complement)

系統 2782 0

二補數 (2's complement) :是一種用二進位表示有號數的方法,也是一種將數字的正負號變號的方式,常在計算機科學中使用。

一個數字的二補數就是將該數字作位元反向運算(即一補數),再將結果加 1,即為該數字的二補數。
在二補數系統中,一個負數就是用其對應正數的二補數來表示。

優點:二補數系統的最大優點是可以在加法或減法處理中,不需因為數字的正負而使用不同的計算方式。
????????? 只要一種加法電路就可以處理各種有號數加法,而且減法可以用一 個數加上另一個數的二補數來表示,因此只要有加法電路及二補數電路即可完成各種有號數加法及減法,在電路設計上相當方便。

特點:二補數系統的 0 只有一個表示方式,這點和一補數系統不同(在一補數系統中,0 有二種表示方式),因此在判斷數字是否為 0 時,只較比對一個不同的條件即可。

具體算法:(轉貼:原地址: http://entry.hit.edu.tw/~bd92046/new_page_1.htm

二補數轉換方法差異

方法1:

10進制轉2進制:

<1>直接將10進制轉為2進制,正負號省略。

<2>如果數目少於X bits,在左邊補0直到X bits。

<3>如果是正號,不需要其他動作。

?? 如果是負號,使用1補數:將0變1,1變0;1補數加1,形成2補數。

例(1):將+6以16bit儲存,使用2補數。

????????? +6 => 110 => 0000000000000110

例(2):將-125以16bit儲存,使用2補數。

????????? -125 => 1111101 => 0000000001111101

?????????????? => 1111111110000010 => 1111111110000011

2進制轉10進制:

<1>如果最左邊的bit是0(正數)。

??? 1-1…將數字由二進制轉為十進制。

??? 1-2…在數字前加+號。

例:將0000000000000110轉為十進制(使用2補數)

?????? 0000000000000110 => 6 => +6

<2>如果最左邊的bit是1 (負數)。

?? 2-1…2補數減1,變為1補數。

?? 2-2…將所有的0變1;1變0。

?? 2-3…將數字由2進制轉為10進制。

?? 2-4…在數字前加-號。

例:將1111111110000100轉為十進制(使用2補數)

?????? 1111111110000011 => 1111111110000010

??????????????????????? => 0000000001111101 => 125 => -125

方法2:

10進制轉2進制:

<1>將數字改為2進制;正負號省略。

<2>如果數目少於X bits,在左邊補0直到X bits。

<3>如果是正號,不需要其他動作。

?? 如果是負號,維持最右邊的0直到第一個1(包含)不變,其餘的皆變換。

?? (0變1,1變0)

例(1):將+6以16bit儲存,使用2補數

???????? +6 => 110 => 0000000000000110

例(2):將-125以16bit儲存,使用2補數

???????? -125 => 1111100 => 0000000001111100 => 1111111110000100

2進制轉10進制:

<1>如果最左邊的bit是0 (正數)。

1-1…將數字由2進制轉為10進制。

1-2…在數字前加+號。

例:將0000000000000110轉為10進制(使用2補數)

?????? 0000000000000110 => 6 => +6

<2>如果最左邊的bit是1 (負數)。

2-1…維持最右邊的bits不變直到第一個1(包含),其餘的皆變換。

??? (0變1,1變0)。

2-2…將數字由2進制轉為10進制。

2-3…在數字前加-號。

例1111111110000011轉為10進制(使用2補數)

?? 1111111110000010 => 0000000001111101 => 125 => -125

二者之間的差異

10進制轉2進制:

方法1需要先轉換到1補數,再用1補數+1轉為2補數,使用上較為簡單,

??????? 但計算速度比較慢。

方法2就直接轉換成2補數,在使用上比較容易出錯,不過計算速度會比較快。

2進制轉10進制:

方法1須先使-1變為1補數,然後才能轉換成10進制,計算較為簡單,計算速度緩慢。

方法2可以直接轉換,比較容易出錯,但計算速度較快。

二補數 (2's complement)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論