詳解二進制和十進制的轉換


十進制轉換二進制

拆分法

將十進制整數拆分為若千個二進制權重的和,有該權重下面寫 1,否則寫 0。
權重等於 10^1~n 次方
拆分出來必須是權重中的數字!

正十進制轉換為二進制

求 45 的二進制

# 權重
1 2 4 8 16 32 64 128 ...

1. 45           最近的權重為 32
2. 45 - 32 = 13 權重為 8
3. 13 - 8  = 5  權重為 4
4. 5  - 4  = 1  的權中為 1

45 => 32, 8, 4, 1

有該權重下面寫1,否則寫0。
1 2 4 8 16 32 64 128 ...
1 0 1 1 0  1  0   0
逆向排序可得二進制為 0010 1101

負十進制轉換為二進制

先將十進制的絕對值轉換為二進制,然后進行按位取反再加1
負數的需要補碼:按位取反,再加1
求-45的二進制

1.將-45的絕對值轉換為二進制:0010 1101
2.按位取反(通俗來說就是 0 變成 1,1 變成 0)
0010 1101 按位取反 得 1101 0010
3.在末尾加上 1,得 1101 0011 (如果末尾已經是 1 則需要進位)

驗證:
45 和 -45 互為相反數 所以 -45 + 45 = 0
45  => 0010 1101
-45 => 1101 0011
運算:
 0010 1101
 1101 0011 +
 ——————————— =
1 0000 0000
1 高位溢出舍棄了 最后結果為 0000 0000 = 0

除 2 取余法

使用十進制整數不斷地除以 2 取出余數,直到商為 0 時將余數逆序排序。

轉換 45 為二進制

45 / 2 = 22 ... 1
22 / 2 = 11 ... 0
11 / 2 = 5  ... 1
5  / 2 = 2  ... 1
2  / 2 = 1  ... 0
1  / 2 = 0  ... 1
將余數逆向排序可得:10 1101

二進制轉換為十進制

加權法

使用二進制中的每個數字乘以當前位的權重再累加起來。
權重等於 10^n~1次方
加權必須是權重中的數字!
與正十進制轉換二進制 拆分法是互逆的

正二進制轉換為十進制

轉換 11 0010 為十進制

逆向可得 01 0011

# 權重
1 2 4 8 16 32 64 128 ...
0 1 0 0 1  1  0  0
可得 2 + 16 + 32 = 50

11 0010 的二進制為 50

也可以記為(由 0 位開始)
0 * 2^0 + 1 * 2^1 + 0 * 2^2 + 0 * 2^3  + 1 * 2^4  + 1 * 2^5
0 + 2 + 0 + 0 + 16 + 32 = 50

因為 0 乘任何數都得 0,則可簡化為
2^1 + 2^4 + 2^5 = 2 + 16 + 32 = 50

負二進制轉換為十進制

轉換 1101 0011 為十進制

1.先減1:得1101 0010
2.按位取反:0010 1101
3.使用加權法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM