【发布时间】:2016-06-08 10:48:15
【问题描述】:
我正在编写一个共享代码库,我们有一个“禁止按位运算”的 linting 规则。但是,我正在使用一个简短的实用程序函数将二进制字符串转换为无符号 int 32,big-endian。效果很好:
// converts a four-character string into a big endian 32-bit unsigned integer
stringAsUInt32BE(binString) {
return (binString.charCodeAt(0) << 24) + (binString.charCodeAt(1) << 16) +
(binString.charCodeAt(2) << 8) + binString.charCodeAt(3);
};
如果没有按位运算,我怎么能做到这一点?谢谢!
【问题讨论】:
-
您确实应该为该特定功能禁用这种无意义的 linting 规则。
-
我假设您的函数对于第一个字符为 >
\x7F的输入字符串存在错误。如果您认为这是所需的行为,请告诉我们。见stackoverflow.com/a/37705109/1647737 -
@Bergi 向我们展示了这些规则究竟如何具有一些优点
标签: javascript bit-manipulation bitwise-operators