如何更改整数或字节中的所有位
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)}`}));
}
我想做的是对 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)}`}));
}