java - 找出已更改的位数(按位运算符)

标签 java bit-manipulation

我有一个根据用户输入生成的位字符串。我还有另一个位字符串,用于对生成的位字符串执行按位 & 操作。我想知道的是如何找出生成的位串中有多少位从 & 操作中改变了。假设我有 10000101 作为生成的位串,00101111 作为我用于 & 操作的第二个位串。该过程的输出应为 1,因为仅生成位串的第一位已更改。我怎么做?

最佳答案

您正在寻找的是按位异或(异或),或a^b:

   10000101 ^ 00101111 → 10101010

Is 在逻辑上等同于 (~a&b) | (a&~b)

关于java - 找出已更改的位数(按位运算符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36580856/

相关文章:

java - 尝试安装 Tizen Studio 来设计智能表盘。安装 Tizen Studio 时遇到错误

java - 调试 Java 代理

java - 使用 int 然后递增它比同时做两者慢吗?

algorithm - 计算每个位在整数范围内设置的次数

bit-manipulation - 掩码和聚合位

java - 未经检查的转换 : 'java.lang.Object[]' to 'T[]'

java - HTTP Get : Only download the header?(不支持HEAD)

c - 使用位运算符执行此操作

c++ - 在位数组中找到 N 个 1 位的字符串

c++ - 高效的位操作