C++ - 运算符

移位运算符:

  • 左移运算符 <<
    左移运算符相当于乘以2,并且效率要高出乘法许多,尽量使用左移运算符。
  • 右移运算符 >>
    右移运算符,移出最右边就被丢弃,符号的最高位会被一起移动,并且大多数 C、C++编译器规定,如果原符号位是1,则右移时高位就补充1,原符号位为0,则右移时高位就补充0。右移动相当于除以2,但是结果会往小数取整。
    例如:
-25 >>4 = -2
-2  >> 4 = -1;
18  >> 4 = 1;

举例:两个 int 类型的值 a和n(0<= n <31),要求写一个表达式,使该表达式的值和 a 的第 n 位相同。
答案:
- (a>>n) & 1;
- (a&(1<<n))>>n

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • C++运算符重载-上篇 本章内容:1. 运算符重载的概述2. 重载算术运算符3. 重载按位运算符和二元逻辑运算符4...
    Haley_2013阅读 2,318评论 0 51
  • 位运算 位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,...
    IIronMan阅读 7,925评论 0 2
  • 具体可以参考Hadoop官网http://hadoop.apache.org/docs/current/hadoo...
    pandaAnthony阅读 1,153评论 0 4
  • 没有人真正爱我,没有人真的愿意和我在一起,这是我的信念。那好吧,在你们离开之前我先走……这样至少是我的选择而不是你...
    文华_衡阳阅读 305评论 0 0
  • display:inline,block,inline-block三种类型: //注释: 1.宽度和高度只能作用在...
    frankisbaby阅读 287评论 0 0