c#实现方式
public static void NumSplit(long input)
{
long m = 1;
for (int i = 1; i < 64; i++)
{
if ((m & input) == m)
{
Console.WriteLine(m);
}
m = m << 1;
}
}
js实现:
splitToPowersOfTwo(number) {
const powers = [];
let currentPower = 0;
while (number > 0) {
if (number % 2 === 1) {
powers.push(2 ** currentPower);
}
number = Math.floor(number / 2);
currentPower++;
}
return powers;
}