Skip to content

Latest commit

 

History

History
27 lines (20 loc) · 868 Bytes

File metadata and controls

27 lines (20 loc) · 868 Bytes

4.8 位运算符

~
<<
>>
&
^
|

如果运算对象是 char 这样的小整型,那么它的值会被自动提升为 int 这样的大整型。

建议仅将位运算符用于处理无符号类型。

移位运算符右侧的运算对象一定不能为负,而且值必须严格小于结果的位数,否则会产生未定义的行为。

左移运算符( << )在右侧插入值为 0 的二进制位。
右移运算符( >> )的行为依赖于左侧运算对象的类型: 如果该运算对象是无符号类型,则在左侧插入值为 0 的二进制位; 如果该运算对象是带符号类型,则在左侧插入符号位的副本(或值为 0 的二进制位),如何选择要视具体环境而定。

练习