书目《C程序设计(第三版)》
所谓位运算是指进行二进制位的运算。
(一)按位与运算符(&) 相应二进制位都为1,结果为1,否则为0。 可用于: 1、清零 2、取一个数中某些指定位 3、保留一个数中某些指定位
(二)按位或运算符(|) 相应二进制位只要有一个为1,结果为1。 可用于: 1、置某些指定位为1
(三)异或运算符(^) 也称XOR运算符,相应二进制位同号为0(假),异号为1(真)。 可用于: 1、使特定位翻转 2、保留原值 3、不用临时变量交换两个值
(四)取反运算符(~) 这是一个单目运算符,对一个二进制数按位取反。 可用于: 1、取最低一位为0的代码,保持其在不同系统下的通用性
(五)左移运算符(<<) 用来将一个数的各二进制位全部左移若干位,高位左移后舍弃,右补0。 可用于: 1、左移n位,相当于将该数乘以2的n次方(仅适用于被舍弃的高位中不包含1的情况)
(六)右移运算符(>>) 用来将一个数的各二进制位全部右移若干位,低位右移后舍弃,左补0(仅适用于无符号数或者有符号数中的正数)。 可用于: 1、右移n位,相当于将该数除以2的n次方
(七)不同长度的数据进行运算 如果两个数据长度不同,进行位运算时,系统会将其按照右端对齐。长度较短的数据,当其为正数或者无符号数时,左侧补0,当其为负数时,左侧补1。
(八)位段 C语言允许在一个结构体中以位为单位来指定其成员所占的内存长度,这种以位为单位的成员称为“位段”或者“位域”。