num>>1 在 c++ 中是什么意思?
What does num>>1 mean in c++?
我知道这是一个非常简单的问题,但我很难在谷歌上找到答案,因为它忽略了"<<"字符。如果您对我将来应该如何搜索这样的东西有任何建议,那也将不胜感激。我似乎记得它的某种位移什么的?但我真的不知道这意味着什么,也不知道它是如何工作的,无论是 -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
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- C++避免重复声明的语法是什么
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- C++从另一个类访问公共静态向量的正确方法是什么
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- C++中名称篡改的目的是什么
- 在 c++ 中拥有一组结构的正确方法是什么?
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值
- 是什么阻止DOMTimerCoordinator::NextID进入无休止的循环
- 派生类销毁的最佳实践是什么
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 通过JNI传递数据数组的最快方法是什么
- "using namespace std;"在C++的作用是什么?
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- 文件系统:复制功能的速度秘诀是什么
- 用常见虚拟函数实现的任意组合来实现派生类的正确方法是什么
- 使用QQuickFramebufferObject时同步数据的最佳方式是什么
- 是什么原因导致它无法编译?它是声明签名还是在函数本身的实现中
- 使用 std::vector<boost::shared_ptr<Base_Class>> 或 boost::p tr_vector 的性能注意事项是什么<Base>