正整數的補碼是其二進位制表示,與原碼相同。負整數的補碼,將其原碼除符號位外的所有位取反(0變1,1變0,符號位為1不變)後加1。
二進位制原碼的加運算為0+0=0,0+1=1,1+0=1,1+1=10,(逢2進1);減運算為1-1=0,1-0=1,0-0=0,0-1=1,(向高位借1當2)。即13-10 = 01101+11010=100011;-13-10=110011+11010=1101001。
如果補碼的符號位為“0”,表示是一個正數,其原碼就是補碼。如果補碼的符號位為“1”,表示是一個負數,那麼求給定的這個補碼的補碼就是要求的原碼。
即13-10去掉符號位前的多餘位數,00011=1*2^1+1*2^0=3;-13-10去掉符號位前的多餘位數,110011+11010=1101001=1010110+1=1010111=-(1*2^4+1*2^3+1*2^0)=-23。
擴充套件資料:
補碼錶示統一了符號位和數值位,使得符號位可以和數值位一起直接參與運算,這也為後面設計乘法器除法器等運算器件提供了極大的方便。
補碼概念的引入和當時運算器設計的背景不無關係,從設計者角度,既要考慮表示的數的型別(小數、整數、實數和複數)、數值範圍和精確度,又要考慮資料儲存和處理所需要的硬體代價。因此,使用補碼來表示機器數並得到廣泛的應用,也就不難理解了。
正整數的補碼是其二進位制表示,與原碼相同。負整數的補碼,將其原碼除符號位外的所有位取反(0變1,1變0,符號位為1不變)後加1。
二進位制原碼的加運算為0+0=0,0+1=1,1+0=1,1+1=10,(逢2進1);減運算為1-1=0,1-0=1,0-0=0,0-1=1,(向高位借1當2)。即13-10 = 01101+11010=100011;-13-10=110011+11010=1101001。
如果補碼的符號位為“0”,表示是一個正數,其原碼就是補碼。如果補碼的符號位為“1”,表示是一個負數,那麼求給定的這個補碼的補碼就是要求的原碼。
即13-10去掉符號位前的多餘位數,00011=1*2^1+1*2^0=3;-13-10去掉符號位前的多餘位數,110011+11010=1101001=1010110+1=1010111=-(1*2^4+1*2^3+1*2^0)=-23。
擴充套件資料:
補碼錶示統一了符號位和數值位,使得符號位可以和數值位一起直接參與運算,這也為後面設計乘法器除法器等運算器件提供了極大的方便。
補碼概念的引入和當時運算器設計的背景不無關係,從設計者角度,既要考慮表示的數的型別(小數、整數、實數和複數)、數值範圍和精確度,又要考慮資料儲存和處理所需要的硬體代價。因此,使用補碼來表示機器數並得到廣泛的應用,也就不難理解了。