位运算

来源:互联网 发布:ipadmini下载软件 编辑:程序博客网 时间:2024/05/17 23:46

一个字节由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   <成员名>:<二进制位数>
循环移位是指:在移位时不丢失移位前原数据的所有位,将其作为另一端的补入位        

原创粉丝点击