1.數電覆刻 之 數制碼制和運算

上完課發現自己看的書的內容有點淺了,復刻


1.換算:

二進制--B
八進制-O
十進制-D
十六進制-H
小數的精確度問題:
例如要求精度1%
就是2^-m <=0.01,換算成 2^m >=10^-2
兩邊同時用log,即得到 m lg2 >=2
m >=6.6,所以m取7

1.二 ===》十

以小數點爲起點
小數點左邊第一位是 20,往後依次21,22
小數點右邊第一位是2 -1,往後依次2-2,2-3

最後所有的求和即可

技巧:理解二進制的運算,並學會利用來簡化運算

對於例如 1111 這種2進制數,可以採用 24 - 1這樣來簡化運算


2.十 ===》二

整數部分:反寫的除法/2,得到的餘數就是二進制

小數部分:正寫的乘法×2,得到的數的整數部分,即使二進制

注意:順序問題,統一整數和小數:所有都是從小數點開始的,所以看起來就像整數是倒敘,
小數是是正敘一樣

3.二 ===》八/十六

八進制和十六進制其實就是二進制的衍生物

1.從小數點開始,整數部分向左每三位 合成一個八進制數,小數向右每三位組合一個八進制數
	(按十進制算法)
2.十六進制和把進制一樣,不過是每四位
注意:
1.不足位時補零,小數部分尤其注意
2.十六進制超過10的部分,從十對應A開始,依次推

4. 八/十六 ===》二

每一個數字還原成二進制,按原順序排列就行了



2.二進制運算


1.加法
按照逢2進1的規律。列豎式

eg:

      0 1 0 1
  +   0 1 0 0
  =   1 0 0 1


2.乘法
按照十進制的算法,下面的數的每一位和上面的數相乘,答案錯位寫,最後相加


3.除法
除法和十進制的算法一樣,最後也歸結到加減法上


4.用加法算減法

大家可以發現 我一直在迴避談到減法,因爲我的確一直沒弄懂他的減法原理,而且現實應用中,我們的確不用減法,而是用加法代替減法,到底是怎麼回事呢?


我們看下面這個圖
在這裏插入圖片描述
現在想要把指針從十轉到二,顯然有兩種辦法:順時針和逆時針

我們仔細觀察會發現:
1.逆時針 《=》 10 - 8 = 2
2.順時針 《=》 10 + 4 -12 = 2

由此應該能體會到爲什麼我們可以靠加法去算減法了吧

這顯然是針對有周期的情況的解決辦法,而我們的二進制是有周期的嗎?
我們這裏顯然應該針對固定位數的二進制 對0000 這樣的四位二進制,顯然1111+1=0000
這就是一個週期,因爲固定只有四位了,那進位的那個1就當做溢出而捨去

下面就是具體解法:

1.求出減數的補碼(正數不變,負數的話所有位取反,最後加一)
2.和被減數相加
3.得到的是答案的補碼
注意點:
1.我強烈建議先計算出 當前計算可能的最大值,確定好位數
2.強烈建議帶符號,有了符號位也可以帶入計算,比如被減的那個數(減數)就是看做負的數
3.補碼不改變符號位
4.超出確定好的位數的都看作溢出而捨去
5.符號位在最前面單獨出一位
6.與其說是算減法的時候需要用補碼去計算,不如看做是有負數的時候用補碼算
(我犯了一個傻錯誤,突發奇想把減法看做正數加負數,是不是就不需要用加補碼的做法了呢,
	然後錯了)
7.得到的答案是答案的補碼,帶入符號的好處是確定出你得到的是答案還是答案的補碼

用下面兩個公式描述一下我們上面說的過程

【X+Y】補 = 【X】補 + 【Y】補
【X-Y】補 = 【X】補 - 【-Y】補

大概就是這些了

作業:
在這裏插入圖片描述在這裏插入圖片描述***

總結解法:


1.計算待計算的數絕對值之和,確定位數
2.計算兩數的補碼
3.加上符號位,兩數補碼相加
4.超過確定的位數的進位全部捨去(反應了週期性)
	第一位是符號位
5.根據得到的補碼計算出答案的原碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章