zoukankan      html  css  js  c++  java
  • 位运算

    一、关键点

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

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

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

    二、示例

    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. 移位运算符的优先级不高不低:比算术运算符低,高于关系/赋值/条件运算符

  • 相关阅读:
    [DP] Rod-cutting problem
    Dynamic Programming (DP) 问题总结
    [CC150] 八皇后问题
    [cc150] 硬币问题
    [cc150] 括号问题
    [CC150] Get all permutations of a string
    让Eclipse使用新版本的JRE
    Java中的数组问题
    慎用递归!
    cocos2d-x 添加背景音乐和音效-SimpleAudioEngine
  • 原文地址:https://www.cnblogs.com/xzxl/p/7654801.html
Copyright © 2011-2022 走看看