为了账号安全,请及时绑定邮箱和手机立即绑定

关于c++中&

关于c++中&

C++
holdtom 2019-10-21 16:12:39
关于c++中&
查看完整描述

3 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

b&c是按位与运算符,它的运算时自左至右的举个例子:参加运算的两个数据,按二进位进行“与”运算。如果两个相应的二进位都为1,则该位的结果值为1,否则为0。即

0&0=0;0&1=0;1&0=0;1&1=1;

例如: 3&5 并不等于8,应该是按位与。

3 = 00000011

(&) 5 = 00000101

00000001

因此,3&5的值得1。如果参加&是负数运算的是负数(如-3 & -5),则以补码形式表示为二进制数,然后按位进行“与”运算。

按位与有一些特殊的用途:

(1)清零。 如果想将一个单元清零,即使其全部二进位为0,只要找一个二进制数,其中各个位符合以下条件:原来的数中为1的位,新数中相应位为0。然后使二者进行&运算,即可达到清零目的。

如:原有数为00101011,另找一个数,设它为10010100,它符合以上条件,即在原数为1的位置上,它的位值均为0。将两个数进行&运算:

00101011

(&) 10010100

00000000
其道理是显然的。

当然也可以不用10010100这个数而用其他数(如01000100)也可以,只要符合上述条件即可。

(2)取一个数中某些指定位。如有一个整数a(2个字节),想要其中的低字节。

只需将a与(737)8按位与即可。
第二个 &b 这其中&是取地址的意思这点在输入数据和指针运算时用的比较多
例如:scanf(“a=%d\n”,&a) 还有就是指针运算
int*p1
p1=&a





查看完整回答
反对 回复 2019-10-22
  • 3 回答
  • 0 关注
  • 262 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信