请解释>>在这个计划中

时间:2013-02-25 00:07:35

标签: c++

提取操作员在做什么?我从未见过用过这种方式。

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;
 }

3 个答案:

答案 0 :(得分:3)

在它是一个提取运算符之前,它是一个bitshift运算符。

答案 1 :(得分:3)

它不是一个提取算子 - 它是一个按位移位 - 或“除以二”(尽管它可能不适用于负数)。

“提取运算符”只是借用C语言中不太常见的运算符之一来完成与它完全不同的操作。

答案 2 :(得分:2)

这是bitshift运算符,在这种情况下,它将整个值向右移位一位。

E.g:

 13 >> 2

 01101 
 00110 //right by one
 00011 //repeat

 = 3