Java Fly

          Java&Oracle
          隨筆 - 12, 文章 - 20, 評(píng)論 - 27, 引用 - 0
          數(shù)據(jù)加載中……

          補(bǔ)碼的原理及隨想

          補(bǔ)碼的原理及隨想 - [筆記]

          越早在課堂上學(xué)的東西,越給我以簡(jiǎn)單的印象,忘得也越快。而事實(shí)上,它們往往是最富有智慧的,即便在我沒忘的時(shí)候,也沒有深刻地理解它們。

          嘛是補(bǔ)碼?不少書上扯一堆“取反加1之類的規(guī)則,很不著重點(diǎn),我覺得核心在于:

          對(duì)于范圍為[0,M)的整數(shù)計(jì)量系統(tǒng),其模為M。和為M的兩個(gè)數(shù)互為補(bǔ)數(shù)。

          如果有兩個(gè)整數(shù)a,b[0, M),那么f(a-b)==f(a+c),其中c= M-b,是b的補(bǔ)碼,f是一個(gè)映射,定義為:
          當(dāng)0<=x< M時(shí),f(x)=x;
          當(dāng)x>= M時(shí),f(x)=x % M;
          當(dāng)x<0時(shí),f(x)=f(M +x).
          其中%為取余運(yùn)算(效果同編程語(yǔ)言中的取模運(yùn)算)

          在計(jì)算機(jī)中,f是由溢出隱式實(shí)現(xiàn)的,所以天生就有a-b==a+c。這就把減運(yùn)算轉(zhuǎn)化成了加運(yùn)算。

          于是,為了便于執(zhí)行減運(yùn)算,計(jì)算機(jī)就把-b表示為其補(bǔ)碼c

          假設(shè)機(jī)器字有n位,那么M=2nc=2n-b

          人在紙上怎么計(jì)算2n-b的二進(jìn)制值?2n的原碼就是1后面跟了n個(gè)0,直接用它減b的原碼不方便,先用2n-1的原碼(n個(gè)1)減b的原碼,得到的結(jié)果加上1就是2n-b的值了——這就是“取反加1的由來(lái)。

          posted on 2007-11-01 10:18 Java Fly 閱讀(1955) 評(píng)論(4)  編輯  收藏

          評(píng)論

          # re: 補(bǔ)碼的原理及隨想  回復(fù)  更多評(píng)論   

          知其然,知其所以然,這種學(xué)習(xí)態(tài)度值得學(xué)習(xí).
          2007-11-12 18:19 | 紫蘇

          # re: 補(bǔ)碼的原理及隨想[未登錄]  回復(fù)  更多評(píng)論   

          為什么好多教材都沒有提到模的概念,都是取反加1 這不是糊弄大家嗎?
          2008-01-10 11:52 | fox

          # re: 補(bǔ)碼的原理及隨想[未登錄]  回復(fù)  更多評(píng)論   

          當(dāng)x<0時(shí),f(x)=f(M-(-x)%M). 這樣才對(duì)吧。
          因?yàn)镸+x仍有可能為復(fù)數(shù)。
          2008-09-22 23:12 | Tony

          # re: 補(bǔ)碼的原理及隨想  回復(fù)  更多評(píng)論   

          也許我們兩個(gè)所表達(dá)的關(guān)于補(bǔ)碼的理念應(yīng)該結(jié)合一下,這樣會(huì)更加完善啊
          呵呵,歡迎討論啊
          http://blog.chinaunix.net/u2/86948/showart_1849617.html
          2009-03-11 00:40 | caocao

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 大埔区| 冀州市| 衡阳市| 兴化市| 马龙县| 亚东县| 获嘉县| 香港| 定安县| 临朐县| 黔江区| 定远县| 普安县| 广德县| 安顺市| 康定县| 永寿县| 红河县| 小金县| 绥宁县| 阜南县| 长治市| 章丘市| 灵山县| 云龙县| 望谟县| 华容县| 齐齐哈尔市| 孝昌县| 德惠市| 康马县| 怀远县| 东乡族自治县| 榆林市| 乐清市| 舟曲县| 嘉兴市| 合川市| 汉中市| 唐山市| 商城县|