参考链接(总结的非常好,各种奇淫技巧):https://blog.csdn.net/MoreWindows/article/details/7354571
1、优先级
“<<” 和 ">>" 的优先级低于 “+” 和 “-”。 “~” 按位求反 “^”按位异或 “|”按位求或 “&”按位求与
2、基本概念
注意以下几点:
1. 在这6种操作符,只有~取反是单目操作符,其它5种都是双目操作符。
2. 位操作只能用于整形数据,对float和double类型进行位操作会被编译器报错。
3. 15=0000 1111(二进制),右移二位,最高位由符号位填充将得到0000 0011即3。
-15 = 1111 0001(二进制),右移二位,最高位由符号位填充将得到1111 1100即-4。
https://blog.csdn.net/studyvcmfc/article/details/7606292
https://jingyan.baidu.com/article/29697b9106eb52ab21de3c7a.html
————————————————————————————————————————————————————
看到《c++ primer》里面的内容了,再来补充一下 2018.11.20
1、移位运算符
运算符右侧的运算对象一定不能为负,而且值必须严格小于结果的位数,否则会产生未定义的行为。
左移运算符(<<)在右侧插入值为0的二进制位。
右移运算符(>>)的行为依赖于其左侧运算符对象的类型:
如果该运算对象是无符号类型,则在左侧插入值为0的二进制位;
如果该运算对象是带符号类型,在左侧插入符号位的副本或值为 0 的二进制,如何选择,要视具体环境而定。
未完待续——————————————————————————————————————————————