0

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

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

3 回答 3

3

早在它成为提取运算符之前,它就是一个位移运算符。

于 2013-02-25T00:08:30.427 回答
3

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

“提取运算符”只是借用 C 语言中不太常见的运算符之一来做一些完全不同的事情。

于 2013-02-25T00:09:06.363 回答
2

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

例如:

 13 >> 2

 01101 
 00110 //right by one
 00011 //repeat

 = 3
于 2013-02-25T00:09:19.180 回答