<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 關(guān)于補碼運算的一點看法

          關(guān)于補碼運算的一點看法

          作者: 時間:2016-12-01 來源:網(wǎng)絡 收藏
          這兩天數(shù)電課說了補碼這個概念,可是為什么補碼可以代替負數(shù)運算,書上沒有說清楚,按位取反再加一的原因書上也沒說太清楚,在這里我說一點我的看法。

          首先說一下模的概念,對于范圍是【0,m-1】的整數(shù)計量單位,其模為M,和為M的兩個數(shù)互為補數(shù),就像時鐘,計量單位是[0,11],那么模就是12,7與5就互為補數(shù)。

          本文引用地址:http://www.ex-cimer.com/article/201612/324218.htm

          如果兩個整數(shù),a,b∈【0,m-1】,那么,定義一個映射f,

          使f(a-b)=f(a+c), 其中,c=m-b,是b的補碼, f定義為

          當0≤x

          當x≥m時,f【x】=x%M(此處為模運算,學過C的應當知道);

          當x<0時,f[x]=f(m-(-x)%m)……… 此處是為了保證自變量為正數(shù);

          這三個公式可以由計算機原理的溢出來隱式實現(xiàn),于是天生就有 a-b=a+c ,所以減運算變成了加運算,于是計算機把-b表示成了補碼c;

          現(xiàn)在說一說取反加一的問題,假設(shè)計算機上的機器字有n位,那么就有m=2n,所以c=2n-b,人在紙上怎么計算c=2n-b的值呢,是這樣的: 的原碼是1后面跟n個0,直接用來減b的原碼不方便,于是就先用2n-1(n個1)減b的原碼,得到的結(jié)果再加上一就是2n-b的值,這就是計算機類書籍上說的“取反加一”

          數(shù)學中的整數(shù)相加,仍然是一個整數(shù),但是一個集合內(nèi)的兩個整數(shù)相加,卻不能保證還在這個集合內(nèi),用代數(shù)的術(shù)語來講,叫做 "不滿足封閉性",這是個很壞的性質(zhì),而補碼的提出就是為了用封閉的運算來解決這個問題,

          當然,這都是個人理解,歡迎指正,順帶說一句,這是我和謝奇同學的討論結(jié)果。



          關(guān)鍵詞: 補碼運算負數(shù)運

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();