• 位运算


    一、关键点

    作用对象:整型(如果运算对象是“小整型”,则它的值会被自动提升成较大的整数类型),把运算对象看成是二进制位的集合

    功能:检查和设置二进制位

    如果运算对象是带符号的且它的值为负,则位运算符如何处理运算对象的“符号位”依赖于机器,故我们推荐使用位运算符处理无符号类型。

    二、示例

    1. 用于数组的维度

    	int a[1<<2];		//等价于int a[100]; 
    

    2. 设置和检查二进制位

    	unsigned int a = 0;				//32个二进制位,每位都是0
    	a = a | 1u << 3;				//设置第3位为1,1u为一个unsigned类型的整数字面值 
    	cout << a << endl; 				//输出8
    	1u << 3;		//该整数只有第3位是1,其他位都是0
    	~(1u << 3);		//该整数只有第3位是0,其他位都是1 
    

     

    三、移位运算符的优先级和结合律

      尽管很多程序员从未直接使用过位运算符,但几乎所有人都用过它们的重载版本来进行IO操作。

      重载运算符的优先级和结合律都与它的内置版本一样。

    1. 移位运算符满足左结合律

    2. 移位运算符的优先级不高不低:比算术运算符低,高于关系/赋值/条件运算符

  • 相关阅读:
    Java实现花朵数
    Java实现花朵数
    Java实现花朵数
    Java实现花朵数
    Java实现花朵数
    Java实现 黑洞数
    Java实现 黑洞数
    Java实现 黑洞数
    Could not create the view: An unexpected exception was thrown.问题解决
    让 SVN (TortoiseSVN)提交时忽略指定目录
  • 原文地址:https://www.cnblogs.com/xzxl/p/7654801.html
Copyright © 2020-2023  润新知