提取操作员在做什么?我从未见过用过这种方式。
void DecimalToBinary(int decimal)
{
int remainder;
if(decimal <= 1)
{
cout << decimal;
return;
}
remainder = decimal % 2;
/*----->>>*/ DecimalToBinary(decimal >> 1);/*what is the extraction operator doing?*/
cout << remainder;
}
答案 0 :(得分:3)
在它是一个提取运算符之前,它是一个bitshift运算符。
答案 1 :(得分:3)
它不是一个提取算子 - 它是一个按位移位 - 或“除以二”(尽管它可能不适用于负数)。
“提取运算符”只是借用C语言中不太常见的运算符之一来完成与它完全不同的操作。
答案 2 :(得分:2)
这是bitshift运算符,在这种情况下,它将整个值向右移位一位。
E.g:
13 >> 2
01101
00110 //right by one
00011 //repeat
= 3