javascript - 如何对纯二进制数据进行纯按位运算

标签 javascript node.js bit-manipulation

当我将二进制数据与十进制值进行异或时,会给出错误的结果。

考虑了我的以下程序:

var hexarr = 'f86b8204';
binayrData = hexarr.charCodeAt(0).toString(2);
decimalData = hexarr.charCodeAt(0);
hexData = hexarr.charCodeAt(0).toString(16);

console.log("binaryData:   ", binayrData);
console.log("binaryData^3:   ", binayrData ^ 3);
console.log("decimalData :   ", decimalData);
console.log("decimalData^3 :   ", decimalData ^ 3);
console.log("hexData:   ", hexData);
console.log("hexData^3:   ", hexData ^ 3);

这是输出

binaryData:    1100110
binaryData^3:    1100109
decimalData :    102
decimalData^3 :    101
hexData:    66
hexData^3:    65

最佳答案

当您认为要将数字转换为不同的基数时,您实际上是在创建代表这些基数中的数字的字符串。然后,当您尝试对它们进行异或时,JS 会将这些字符串转换为数字,但不知道它们的基数是什么,并将它们视为小数。

您真正想要做的是将基本转换推至显示数据时的点。

var hexarr = 'f86b8204';
binaryData = hexarr.charCodeAt(0);

console.log("binaryData:   ", binaryData.toString(2));
console.log("binaryData^3:   ", (binaryData ^ 3).toString(2));
console.log("decimalData :   ", binaryData.toString(10));
console.log("decimalData^3 :   ", (binaryData^ 3).toString(10));
console.log("hexData:   ", binaryData.toString(16));
console.log("hexData^3:   ", (binaryData ^ 3).toString(16));

关于javascript - 如何对纯二进制数据进行纯按位运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58623079/

相关文章:

javascript - WebStorm 中的 Yargs.argv 未解析变量

javascript - 如何使用 javascript 检查数字是否有 - 作为其起始值?

javascript - 检查 Chrome 扩展程序中加载的页面

javascript - 使用 Node.js 的 JSON 数据

c - 位操作 -rotateLeft

javascript - JavaScript 中数组切片内的位移/翻转

c++ - Arduino 中不需要的符号扩展

javascript - jQuery 获取选择的值并添加到文本输入

javascript - 如何保持并排图像的纵横比,保持图像相同的高度并在图像之间固定填充?

node.js - MongoDB - 找到至少一个数组值丢失的地方