一个字节由8位二进制数字组成的,前面四位是高位,后面四位是低位
位运算符 功能 举例
~ 按位取反 ~a:对变量a的全部位取反
<< 左移 a<<2:将变量a的各位全部左移2位,高位丢失,低位补0
>> 右移 a>>2:将变量a的各位全部右移2位,对于无符号数和正整数,高位补0;对于负整数,高位补1(适用于turboc系统)
& 按位与 a&b:对a与b的各对应位进行“按位与”运算
| 按位或 a|b:对a与b的各对应位进行“按位或”运算
^ 按位异或 a^b:对a与b的各对应位进行“按位异或”运算,如果两个相应位相同,则结果为0,否则为1
(1)按位异或可以用来使某些特定的位翻转,
(2)通过按位异或运算,可以实现两个值的交换
(3)异或运算符的特点是:数a两次异或同一个数b(a=a^b^b)仍然为原值a.
按位“或”运算符要求有两个运算量,其功能是将两个运算量的各个相应位分别进行“或”运算。
运算规则为: 1|1=1 0|1=1 1|0=1 0&0=0
按位“异或”运算符要求有两个运算量,其功能是将两个运算量的各个相应位分别进行“异或”运算。
运算规则为: 1^1=0 0^1=1 1^0=1 0&0=0
位段结构是一种结构体类型,只不过是在结构体中含有以位为单位定义存储长度的成员。采用这种结构可以节省存储空间、方便某些特定的操作
位段结构中位段的定义:unsigned <成员名>:<二进制位数>
循环移位是指:在移位时不丢失移位前原数据的所有位,将其作为另一端的补入位