日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

什么是Complement(补码)?

發布時間:2023/12/19 综合教程 30 生活家
生活随笔 收集整理的這篇文章主要介紹了 什么是Complement(补码)? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大學上過計算機原理課程的朋友都接觸過補碼這個概念,不過當時書上所教授的內容都是以二進制作為前提,即所謂的2的補碼(2's Complement)。近來看TCP/IP Volume 1時,又接觸到“1的補碼”這個概念,忽然發現其實還不太明白補碼到底是什么意思,故查閱資料記錄之。

資料來源:維基百科

術語解釋:Radix —— 基數,在本篇文章的范疇內等價于“進制”

定義:給出長度為n的數值y,則y的以基數b的補碼為: bn - y (即 b的補碼)

水平有限,翻譯的比較拗口,不過公式還是很簡潔的,實際上補碼從定義上來說并沒有什么難懂的地方。不過有些地方需要加以說明,補碼這個概念是建立在進制(即基數)的基礎上的,至少在計算機科學的術語中,補碼定義中的基數b是一定等于當前進制的,也就是說以上定義可以簡化為

給出長度為n的數值y且該數值為b進制,則y的補碼為:bn-y

下面以十進制的數作為例子

給出數值y = 1234,很明顯長度n = 4,基數b = 10(你說不知道10從哪來的?論審題的重要性)

根據補碼的定義那么 y的補碼為:104- 1234 = 8766

用途:補碼的作用是什么呢?你走運啦,補碼的用途很專一 —— 用加法操作來代替減法操作

聽起來匪夷所思,你幾乎要脫口而出:“不可能?。?!”,不過按照國際慣例,我們先來看看到底怎么回事吧

這里要引入另一個很簡單但是英文又很有bigger的術語: 縮小基數補碼 (diminished radix complement),看到 diminished 這個詞我立馬打個激靈,想起了久未謀面的縮小增量排序(diminished increment sort),啥?你說老師沒教過這個?噢,它的另一個名字叫希爾排序,它是。。。咳咳,不好意思跑題了。

縮小基數補碼實際上就是 (bn - 1) - y,就是說你可以通過往縮小基數補碼上加個 1 來得到基數補碼,也就是說

bn-y =(bn-1) -y + 1

是不是想大喊一聲:這TM不是廢話么??

這個概念有什么用?其實在純數學的范疇內,這個純屬多余,沒有任何用處。然而到了我這個年紀,就會明白一切看起來無意義的東西,肯定一定必須存在一個讓它擁有意義的上下文環境。在本文內,這個環境就是“一個數值的長度”,你要知道在數學范圍內,你想把一個數寫多長就有多長,但是在計算機內數值長是固定的,譬如Java語言的int數值長度為32位,你無法用32位的數去表示33位數,當然34位就更不行了!

回到基數b這個關鍵字上面來,還是以十進制數為例子

假設數值長度為固定的4,給出數值y= 1234,如果說你真的要按照定義在計算機內去獲得補碼,你是做不到的,因為根據定義補碼為104- 1234,然而104 = 10000,已經超出了4位數所能表示的范圍,你明白了么?縮小基數補碼就是為了能在固定的數值長度中去獲得補碼,所以退一步海闊天空啊

104- 1 = 9999
9999 - 1234 = 8765
8765 + 1 = 8766

然而,聰明如你一定發現了,說是補碼的用途是用加法代替減法,可是在以上第二步獲得補碼的關鍵步驟里,不還是要進行減法??這有毛區別?哈,這個就是最讓人興奮的地方,在二進制世界里,你不需要再用減法了,下面以二進制為例子

給出數值y= 1011,那么很明顯,按照最新的補碼求解步驟,補碼 = ( 24 - 1 ) - 1011 + 1,猛然一看,這哪里履行了補碼的承諾,用加法代替減法?那么我們就以二進制的視角去看

y   = 1011

24- 1 = 1111

實際上你已經發現了,這個縮小基數補碼是固定的——給定計算機數值長度n,則縮小基數補碼可以直接寫出:pppp...ppp(n個p,p = 進制 - 1),而關鍵的

1111 - 1011,這一步實際上已經不需要作減法操作了,直接對 y 取反再加上 1 就能得到補碼了(是不是對“取反加一”感到特別耳熟?你是個上課聽課的好孩紙),在此不得不感謝偉大的二進制!需要再次聲明下,這么流暢的操作只有二進制能完成,其他進制想要獲得補碼,依然需要減法。

終章:在神奇的二進制世界中,獲得一個數的補碼只需要簡單的取反再加上一就可以了。那么最后我們來看看,補碼到手之后,又怎么能代替減法呢?

假設需要求解 x - y ( x >= y),那么分為以下步驟

求得y的補碼bn-y
x - y = x + (bn-y ) = x - y + bn (這一步用補碼的加法代替了原數值的減法)
顯然x - y + bn >=bn,然而bn已經超出了數的表示范圍(overflow),直接被丟棄了,最后的結果就等于x - y

1的補碼:這個世界是沒有1進制的,所以1的補碼是一個縮小基數補碼,也就是直接對一個二進制數值取反

總結

以上是生活随笔為你收集整理的什么是Complement(补码)?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美一区二区 | 一起操在线| 国产麻豆天美果冻无码视频 | www.天天综合 | 中文字幕第31页 | 我们好看的2018视频在线观看 | 免费av在线网址 | 一级a性色生活片久久毛片 爱爱高潮视频 | 91色交| 99久久久久成人国产免费 | 医生强烈淫药h调教小说视频 | 日日鲁鲁鲁夜夜爽爽狠狠视频97 | 欧美日韩在线不卡 | 精品一区在线播放 | av五十路| 国产精品播放 | 色女人在线 | www日本www| 91精品在线播放 | 久久综合操 | 99热在线观看免费 | 欧美午夜精品一区 | 依依综合网 | 超碰caopor| 极度诱惑香港电影完整 | 黄色国产在线观看 | 精品98 | 亚洲人在线观看视频 | 日韩一区二区三区中文字幕 | 香蕉国产在线视频 | a级一a一级在线观看 | 麻豆视频免费 | 狠狠操夜夜爽 | 国产国产乱老熟女视频网站97 | 欧美黄色激情视频 | 91亚洲天堂 | 骚av在线 | 欧美色综合色 | aaa成人| 亚洲国产精品福利 | 亚洲国产欧美日韩在线 | 亚洲人和日本人hd | 国产高清视频免费在线观看 | 五月天久久久久 | 国内精品免费视频 | 亚洲综合免费观看高清完整版 | 一级片视频播放 | 亚洲伊人精品 | 国产一区二区在线电影 | 九九欧美| 成人av网站大全 | 白浆一区 | 日本一区高清 | 自拍偷拍第八页 | 国产一区一区 | 国产网站一区 | 亚洲精品一区二区三区新线路 | 五月情网| 国产1区在线 | 国产精品毛片一区视频播 | 日本不卡网站 | 日韩在线观看一区二区 | 国产精品久久久久久久久久免费 | 少妇捆绑紧缚av | 国产精品婷婷 | 91麻豆成人精品国产 | 影音先锋中文字幕资源 | 开心成人激情 | 亚洲人人精品 | www四虎影院 | 亚洲欧美自偷自拍 | 亚洲AV无码久久精品色三人行 | 色综合国产 | 亚洲成人精品一区二区三区 | 精品久久久久久亚洲综合网站 | 亚洲视频一区在线播放 | 女人一级一片30分 | 午夜国产一级 | 美女精品视频 | 在线免费看av网站 | 久久久久国产免费 | 色悠悠国产精品 | 色婷婷激情五月 | 中文理论片 | 国产嫩草在线 | 成人影视在线播放 | 国产精品视频一区二区三区不卡 | 韩国明星乱淫(高h)小说 | 国产美女福利在线 | 在线毛片观看 | 三级特黄 | www.成人在线 | 催眠调教后宫乱淫校园 | 欧美午夜激情视频 | 久久久精品中文字幕 | 四虎精品在线播放 | 99福利在线 | 96亚洲精品久久久蜜桃 | 久久偷看各类女兵18女厕嘘嘘 |