十进制转换二进制
拆分法
将十进制整数拆分为若千个二进制权重的和,有该权重下面写 1, 否则写 0。
权重等于 10^1~n 次方
拆分出来必须是权重中的数字!
正十进制转换为二进制
求 45 的二进制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| # 权重 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 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| 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 为二进制1 2 3 4 5 6 7 8
| 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 为十进制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| 逆向可得 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 2 3
| 1.先减1:得1101 0010 2.按位取反:0010 1101 3.使用加权法
|