这是我的代码:
int main(){
unsigned int z = 18;
z = z>>1;
std::cout << z << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
我知道我的结果将是9但我不明白"z = z >> 1"这是什么?>>什么意思?我以为它只用于cin << z; 请解释.谢谢
>>是正确的位移(a),它将值中的所有位右移一个给定值.对于无符号整数,>> 1实际上是两个整数除以.
二进制值18是:
0001 0010
| |
| +--- 2
+------- 16
--
18
Run Code Online (Sandbox Code Playgroud)
通过一位位置右移(位于右侧的"下降" 0位和从左侧进入的位)使您:
0000 1001
| |
| +-- 1
+----- 8
--
9
Run Code Online (Sandbox Code Playgroud)
(a)正是在这种特殊情况下.C++还允许>>用作类的运算符,例如std::cin >> myInputVar;,它将尝试从标准输入读取值并将其放入myInputVar变量中.
| 归档时间: |
|
| 查看次数: |
149 次 |
| 最近记录: |