问题标题:
关于逻辑运算.我的理解是7&8的值为1(真);但是看到一个表达式:x=x&(x-1),会将x用二进制表示时最右边的一个1变为0,因为x-1将会将该位(x用二进制表示时最右边的一个1)变为0.这该如何理解
问题描述:

关于逻辑运算.

我的理解是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位整数
查看更多
数学推荐
热门数学推荐