7.位运算

1.位运算符

&

(1)参与 运算的两数对应的二进位相与

(2)如果两个相应的二进位均为1 则该两位的按位与结果为1

(3)否则 则两位的按位与结果为0

|

(1)参与运算的两数对应的二进位相或

(2)如果两个相应的二进位中有一个位为1 则该两位按位或的结果为1

(3)否则若两个位全为0 则该两位的按位或结果为0

^

(1)参与运算的两数对应的二进位相异或

(2)如果两个相应的二进位相异 则该该两位按位异或的结果为1

(3)否则若两个位相同 则该两位的按位异或结果为0

~

取反

<<

(1)讲一个数的各二进位全部左移指定的位数

(2)在二进位运算中 左移1为相当于将该数乘2 左移n位 则为2^n

(3)左移运算中 该数左移时被溢出舍弃的高位如果全为0 则符合(2)中提到的规律 如果溢出位中包含1 就没上述的规律

>>

(1)讲一个数的各二进位全部右移指定的位数

(2)右移运算中美右移1位 最高位要补0或1 如果原属最高位为0 则右移后左面补0 如果原数最高位为1 则右移后左面补1 ----算术右移

(3)在二进制运算中 右移1位相当于将该数除以2  ....

(4)右移运算中 该数右移时被溢出舍弃的低位如果全为0 则符合(3)中提到的规律 如果溢出位中包含1 就没上述的规律

2.位运算中的规律

在双目运算中两个不同类型的数据进行位运算时 右端对齐 较短数左端补0或补1的规则

3、位段

(1)struct 位段结构名

{位段列表};

位段列表的形式   类型说明符 位段名:位段长度

(2)位段变量的说明方式与结构变量相同

(3)位段的使用和记过成员的使用相同 其一般形式为:

位域变量名.位域名

(4)位段的使用中要注意:位段不能跨两字节  位段的长度不能超出8位  位段可以无位段名 这是它只用作填充或调整位置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值