十進位制也可以像二進位制那麼騷

2021-10-05 13:36:57 字數 1322 閱讀 8452

在計算機內部都是用二進位制補碼進行運算的,忽然腦子一抽,十進位制能不能進行補碼運算呢?

首先隨便列出乙個十進位制的式子:

89-12

=77

二進位制的負數是通過取反再加一來獲得補碼的

二進位制正數的原碼=反碼=補碼

顯然,89的補碼為89

那麼-12的補碼是多少呢?

9減去12的每一位數得到:87

將上面隨便寫出的式子新增上符號位並寫成補碼的形式,將會得到:

089+

9(87+

1)=(

10)77

結論: 十進位製取反操作->9-x 所以,二進位制的取反操作為:1-x .

不論是多少進製都有原碼,反碼,補碼的概念,都能用補碼進行運算 .

tips: 如果有人問-9的補碼是多少,你得回答: (1 0111)2 .

兩個負數相加

-78-

66=-144

-078

-066=-

144// 位數不足,加乙個最高位9(

921+1)

+9(933+1

)=(19

)856

// 添上符號位,按位取反,寫成補碼形式(19

)856=(

19)(143+1

)// 將補碼轉換成原碼,大功告成

為什麼二進位制的補碼是反碼加一,為什麼十進位制的補碼也是反碼加一?

這有什

麼意義呢

,有什麼

意義呢?

\color

這有什麼意義

呢,有什

麼意義呢

?還記得當初你是怎麼學會減法的嗎? 現在告訴你, 你白學啦, 我們根本不需要學什麼減法 . (當然, 這只是開玩笑)

或許對日常使用十進位制,靠算數邏輯運算子+-來區分正負數的人類來說, 意義並不大 .

但對乙個只懂01, 靠最高位是01來區分正負數, 加法做的很快,減法不行的傢伙來說, 意義非凡

所以, 你是做加法快呢? 還是做減法快呢?

二進位制轉十進位制

二進位制轉十進位制方法很多,如字元陣列,指標法等 下面用字串函式的方法實現 二進位制轉十進位制 主要用 到 string函式性質及pow求乙個數的n次方的函式過載 by adengou 2010.08.04 win7 dev c 5.0 vs 2010 通過 include include incl...

二進位制與十進位制

人們在生產實踐和日常生活中創造了多種表示數的方法,這些數的表示規則稱為數制。例如人們常用的十進位制 計算機中採用的二進位制等。十進位制計數法的加法規則是 逢十進一 任意乙個十進位制可用0 1 2 3 4 5 6 7 8 9十個字元的組合表示,它的基數是 10。二進位制計數法的加法規則是 逢二進一 任...

十進位制轉二進位制

includeint dg unsigned n,int c 注意 引數型別是unsigned int main 陣列全部初始化為0 printf d n sizeof int unsigned temp,u temp u 4294967295u int tu int u printf u u,tu...