--- title: 數字系統|第一週 tags: 數位系統與實驗 --- # 二進位轉十進位 ## 整數 整數的部分就是用除法,將每次的餘數記錄下來直到除到商數為 0 然後從第 1 次排到最後一次,由小排到大 > 以 3 為例的話,第一次商數是 1,餘數是 1 > 第二次商數是 0;餘數是 1 > 將餘數 1 和 1 順序由小排到大就是 11 ## 小數 小數的話則是用乘法,將該小數每次都乘以 2;每次乘完都捨棄整數的部分 如果個位數有出現 1 的話,則紀錄 1;0的話就紀錄 0 >例如 0.375,第一次乘以 2 得到 0.75,所以紀錄 0,捨棄整數部分 >第二次乘以 2,得到 1.5,紀錄 1,捨棄整數部分,得到 0.5 >第三次乘以 2,得到 1,紀錄 1,捨棄整數部分,得到 0,結束 >最後從大到小排列,得到 0.011 :::info 上面是二進位轉十進位,所以如果是其他進位轉十進位 在判斷的部分要做一些修正,也就是整數部分在紀錄餘數,以及小數部分記錄整數的地方 因為二進制就只有 0 跟 1,所以要記得其他進制是有其數字的 ::: ## 不同底之間的轉換 通常是先轉成十進位,再轉成想要的進位,但如果是倍數間的近位轉換,可以用特殊的方式 像是二進制轉十六進制,就可以將二進制四個四個劃在一起,合併成一個十六進制 要記得要從小數點開始向左或向右 特殊方法的轉換可以避免小數問題,但是如果事先轉成十進制的方法,就可能會遇到小數問題 也就是要注意循環的部分 # 負數表示法 ## Sign and Magnitude (SM) 就是單純用最左邊的位數表示正數或負數 假如有 4 個 bit,要表示 -3 就是將 0011 變成 1011 ## 1's complement 1 補數 就是直接將該數字取反,0011 變成 1100 在計算上就是 (2^n^-1) - N 也因此會有 -0 產生 ## 2's complement 2 補數 就是直接將該數字取反後加 1,0011 變成 1101 在計算上就是 2^n^- N 因為 0 執行計算後位溢位,所以還是 0 ### 好處 二補數的好處就是,最後只要檢查正加正是否變負,負加負是否變正就好 因為其他情況下,捨棄溢位得到的結果都是正確的,只要將二補數用上面的計算表示法寫出來就知道了 https://drive.google.com/uc?id=1OnLbjFqGmBbuZFyFxVUZF-F0iXR6NQRC # Binary Codes 就是將數字或文字以二進制「顯示」,有各種表示的方法 https://drive.google.com/uc?id=1KI1V5bZfPV8T3d5jHk_QZQzRlk4qDGDw :::warning [更多請見](https://www.tutorialspoint.com/computer_logical_organization/binary_codes.htm) :::