1 2 4 8 16 32 64 128 256 512 1024...这些数字任意几个相加,怎么算出是那几个相加?
问题描述:
1 2 4 8 16 32 64 128 256 512 1024...这些数字任意几个相加,怎么算出是那几个相加?
1+4+8=13 怎么算出是 1 4 8 这三个数字相加?
4+32+64=100 怎么算出是 4 32 64 这三个数字相加?
2+8+128+512=650 怎么算出是 2 8 128 512 这四个数字相加?
任意几个数字 可以是1个 2个 3个 4个等等多个数字相加 (不重复,每个数字只能用一次)
直接给一个数字 172 怎么算出是那些数字相加得出的(4+8+32+128=172)
答
这是二进制的问题.
比如13
13÷2=6……1 (二进制最后一位是1)
6÷2=3 (二进制倒数第二位是0)
3÷2=1……1 (二进制倒数第三位是1)
最后商是1,所以二进制最高位是1
所以,13的二进制表示是
1101
于是,选择(从右开始)第1、第3、第4个数,也就是1、4、8
172的二进制表示为
10101100(自己仿照我前面的介绍化一下)
所以选择(从右开始)第3、第4、第6、第8个数,也就是4、8、32、128