将一个十进制数转换成二进制数,有什么便捷的算法?能心算就能出来的?例如100以内的取一数,25?
1个回答

方法一:

记住二的二次幂的值:2,4,8,16,32,64,128,256,…

找到比要转换的数小的最大幂:25->16,

要转换的数减去最大幂得到余数,并得到二进制数最高位“1”:25-16=9,

余数大于下一个幂,得到二进制数下一位“1”,余数减去下一个幂:9-8=1,

余数小于下一个幂1<4,得到二进制数下一位“0”,余数保持不变,

余数小于下一个幂1<2,得到二进制数下一位“0”,余数保持不变,

余数等于下一个幂,得到二进制数下一位“1”,余数为零.

最终得到二进制数11001.

方法二:

要转换的数连续除以二,取余数,见图: