如何更改整数或字节中的所有位

how to change all bits in integer or byte

我想做的是对 int 中的位使用 XOR 操作数,以便

0 比 1 和

1 等于 0

我已经阅读了很多相关文章,但我似乎并不理解它

这就是我正在尝试的方式:

    public string text = "password";
    public string keypass = "s0";
    int[] x = new int[text.Length];

    ulong key = 255;
    char encript = ' ';
    x[0] = text[0];
    x[0] ^= x[0] << (int)key;
    encript = (char)x[0];
    keypass = x[0].ToString();
    text = encript.ToString();

没用

x[0] |= x[0] << (int)key;
x[0] &= x[0] << (int)key;

我尝试的方法似乎都不起作用,有人可以帮我吗?

要翻转 8 位整数中的所有位,将其与 0xFF 进行异或,即 x ^ 0xFF

运行 下面的“证明”片段。

function formatInt(i) {
  return `${i} (0x${i.toString(16).toUpperCase().padStart(2, '0')}) (${i.toString(2).padStart(8, '0')}b)`;
}

for(let i = 0; i < 256; i++) {
  var l = i ^ 0xFF;
  document.body.appendChild(Object.assign(document.createElement("div"), {innerText: `${formatInt(i)} ^ 0xFF = ${formatInt(l)}`}));
}