返回信息流int a = 2; /*a = 10B*/
int b = a>>1; /*b = 10B >> 1 ==> b = 01B 即 b = 1*/
这是一条镜像帖。来源:北邮人论坛 / cpp / #4956同步于 2008/4/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
Re: C++中的>>操作符表示右移操作时是怎么意思?
Leaf
2008/4/12镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
">>" 向右位移运算符,是一种双目位运算符。
1. 什么是位呢?
就是bit
2. 什么是双目呢?
就是有两个操作数
3. 那么会有什么效果呢?
假设
unsigned char a = 5; // 那么实际上它在 内存里面 表示为 0x05 --> bit: 0000 0101
如果有
unsigned char b = a>>1;
// 那么有下面的情况:
a:[0000 0101] // b=a>>1
b:[0000 0010]1
我们发现这里面出现了数据的损失,如果没有损失的情况下,会有什么样的效果呢?
是的,相当于除以2。