>1"中的 "binary(number >> 1)"是什么意思(十进制转二进制)-6ren"> >1"中的 "binary(number >> 1)"是什么意思(十进制转二进制)-此代码将十进制整数转换为二进制。这是完美的工作。我知道这是使用递归方法完成的...但我不了解该函数第 8 行的参数是如何工作的。提前致谢:)。 void binary(int number) { in-6ren">
gpt4 book ai didi

c++ - "number>>1"中的 "binary(number >> 1)"是什么意思(十进制转二进制)

转载 作者:行者123 更新时间:2023-11-28 06:30:55 25 4
gpt4 key购买 nike

此代码将十进制整数转换为二进制。这是完美的工作。我知道这是使用递归方法完成的...但我不了解该函数第 8 行的参数是如何工作的。提前致谢:)。

void binary(int number) {
int remainder;
if(number <= 1) {
cout << number;
return;
}
remainder = number%2;
binary(number >> 1);
cout << remainder;

最佳答案

在大多数"C inspired languages*" , 运算符(operator) >>表示右(按位)移位运算符。所以代码

binary(number >> 1); 

将一个值传递给对 binary() 的递归调用, 它向右移动一位(即与整数除以 2 相同)。

当数字为<= 1时递归停止,即没有更多的 2 的幂来除以剩余的数字。

在此期间,模 2 (% 2)调用的余数保留并写入内部递归调用之后,这样它将保留 2 次方的正确位置。

例如

12 Decimal
/ 2 = 6 remainder 0 // printed fourth
/ 2 = 3 remainder 0 // printed third
/ 2 = 1 remainder 1 // printed second
> <= 1 so Print 1 // printed first

所以 1100将被打印出来。

* 维基百科术语

关于c++ - "number>>1"中的 "binary(number >> 1)"是什么意思(十进制转二进制),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27605636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com