繁体   English   中英

请在此程序中解释>>

[英]Please explain the >> in this program

提取运算符在做什么? 我从未见过使用这种方式。

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

它是位移位运算符,早于它是提取运算符。

它不是提取运算符-是按位移位-或“除以2”(尽管对于负数它可能无法正常工作)。

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

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

例如:

 13 >> 2

 01101 
 00110 //right by one
 00011 //repeat

 = 3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM