作业帮 > 数学 > 作业

关于逻辑运算.我的理解是 7&8的值为1(真);但是看到一个表达式:x = x&(x-1),会将x用二进制表示时最右边的

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/15 12:31:00
关于逻辑运算.
我的理解是 7&8的值为1(真);但是看到一个表达式:x = x&(x-1),会将x用二进制表示时最右边的一个1变为0,因为x-1将会将该位(x用二进制表示时最右边的一个1)变为0.这该如何理解?
7的二进制表示为0111,8的为1000这两个数据做与运算结果是0000,是假,但7&&8是真.
x=x&(x-1);不一定会实现将x的二进制最低位变为0,变为0的方法是x=x&(0xfffffffffffffffe),这里假设x是32位整数