num>>1 在 c++ 中是什么意思?

What does num>>1 mean in c++?

本文关键字:gt 是什么 意思 num c++      更新时间:2023-10-16

我知道这是一个非常简单的问题,但我很难在谷歌上找到答案,因为它忽略了"<<"字符。如果您对我将来应该如何搜索这样的东西有任何建议,那也将不胜感激。我似乎记得它的某种位移什么的?但我真的不知道这意味着什么,也不知道它是如何工作的,无论是 -1 还是其他什么,就好像是我不知道为什么这个人不会只使用 -1。谢谢

它 (' >> '( 表示在左操作数是整数类型的上下文中的"右移"。 对于无符号类型,uvalue >> 1 等效于除以 2 并截断值;它删除最低有效位,每隔一位向下移动一位,并在最高有效位中插入 0。 对于有符号类型和正值,行为是相同的;如果该值为负数,则行为充其量是由实现定义的。

如果左操作数是输入流,则它是输入操作(但不能输入文本,例如 1,但可以输入到变量(如 l (。

同样,在左侧操作数是整型类型的上下文中,"<< "表示"左移",当左侧操作数是输出流时,它表示输出操作。

当然,如果左手操作数是一个类,则操作意味着类定义操作的含义。 I/O 流是"类定义操作的含义"的特定特例。

请注意,如果 LH 操作数是 N 位的整数(如果其类型短于 int 则提升时(,则仅按介于 0 和 N-1 之间的 RH 值移位有效;任何更大或更小的移位都会产生未定义的行为。 特别要注意的是,N 移位是未定义的行为。

关于类和 I/O 流的注释不适用于 C,但是当操作数都是整数时,C 中的行为与 C++ 中的行为相同。

这是一个

二元右移num一个地方。这里有一个非常好的教程。

有帮助的示例: int m=16; //(10000) n=m>>1; //n=(01000)导致十进制n=8

<<>>都是移位运算符。 有关详细信息,请参阅以下内容:

http://msdn.microsoft.com/en-us/library/336xbhcz.aspx

<< N

数值中的位向左移动 N。 >> N右边。

http://en.wikipedia.org/wiki/Bitwise_operation#Unsigned_bit_shift_operator