我已经在 Java 中解决了这个问题并使用Integer.toBinaryString()
了类似的函数在 c++ 中不可用(据我所知)
我已经制作了这个功能并且它完全可以工作但是我很困惑为什么它可以工作,任何帮助将不胜感激
void decimalToBinary (int number)
{
int remainder;
if (number <= 1)
{
cout << number;
return;
}
remainder = number % 2;
decimalToBinary(number >> 1);
cout << remainder;
}
我理解的主要问题是递归调用,为什么它需要number >> 1
在那里?
因为当它最初被调用时,它使用数字,并检查它是否 <=1 在这种情况下它只输出数字(0/1)并结束函数,否则它获取数字并从除以 2 中得到余数( 1/0) 然后再次调用该函数number >> 1
是否number >> 1
意味着它从整数 ex 1234 中删除结束号在递归调用中将是 123?