平抛运动中,速度决定位移。OI中,口算决定分数
将十进制数用短除法的方式转换成二进制虽然可行,但是在计算量较大的时候不免显得太慢。所以,可以利用2的k次幂的规律快速口算二进制数。
观察表格找规律
| k | 2的k次方 | 二进制下的2的k次方 |
|---|---|---|
| 0 | 1 | 1 |
| 1 | 2 | 10 |
| 2 | 4 | 100 |
| 3 | 8 | 1000 |
| 4 | 16 | 10000 |
可知2^k在二进制下,通俗的来讲就是1后面加k个0
相信不少小伙伴已经看出来,只要利用2^k的这种规律,就可以口算出所有数字的二进制形式了。
举个例子:
14这个数字可以表示为8+4+2,也就是2^3 + 2^2 + 2^1,根据二进制加法,可以直接写出答案:1000 + 100 + 10 = 1110,比短除法高效多了。当然,也可以利用16这个2的次方数,14 = 16 - 2 = 2^4 - 2^1,直接利用二进制减法,10000 - 10 = 1110。
当然,利用2的k次方-1的规律也可以提升口算速度
| k | 2的k次方-1 | 二进制下的2的k次方 |
|---|---|---|
| 1 | 1 | 1 |
| 2 | 3 | 11 |
| 3 | 7 | 111 |
| 4 | 15 | 1111 |
| 5 | 31 | 11111 |
14也可以变成15-1来快速口算,过程就不再赘述了。
下面给大家准备了一个常用十进制转二进制的表格:
| 十进制 | 二进制 |
|---|---|
| 1 | 1 |
| 2 | 10 |
| 3 | 11 |
| 4 | 100 |
| 5 | 101 |
| 6 | 110 |
| 7 | 111 |
| 8 | 1000 |
| 9 | 1001 |
| 十进制 | 二进制 |
|---|---|
| 10 | 1010 |
| 11 | 1011 |
| 12 | 1100 |
| 13 | 1101 |
| 14 | 1110 |
| 15 | 1111 |
| 16 | 10000 |
| 17 | 10001 |
| 18 | 10010 |
| 十进制 | 二进制 |
|---|---|
| 19 | 10011 |
| 20 | 10100 |
| 21 | 10101 |
| 22 | 10110 |
| 23 | 10111 |
| 24 | 11000 |
| 25 | 11001 |
| 26 | 11010 |
| 27 | 11011 |
| 十进制 | 二进制 |
|---|---|
| 28 | 11100 |
| 29 | 11101 |
| 30 | 11110 |
| 31 | 11111 |
| 32 | 100000 |
这个表背下来,应对普及组初赛的二进制转换应该就很容易了。
CSP-J2021rp++!!!