javascript - 如何从十六进制获取位数

标签 javascript

例如,如何从 0x01 获取 8,或从 0x0001 获取 16。

我想知道变量的位数。

var someNumber = 0x123456;
var len = whatToDoHere(someNumber);
console.log(len); // => 24 for example

最佳答案

以下是一些替代方案:

f1 = n => (Math.log2(n) & -8) + 8                          // log2 (-Infinity & -8 = 0)

f2 = n => ((n >>= 8) && f2(n)) + 8                         // recursion

f3 = n => n.toString(16).length + 1 << 2 & -8              // string length

for (n of [0, 0xff, 0x100, 0xffff, 0x10000, 0xffffff])
  console.log( f1(n) + '\t' + f2(n) + '\t' + f3(n) + '\t0x' + n.toString(16) )

关于javascript - 如何从十六进制获取位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47682786/

相关文章:

javascript - ui 路由器嵌套 View 条件

javascript - "Converting"javascript 变量(字符串)值转换为 PHP 变量

javascript - 如何从具有某些 ID 的外部 div 访问图像标签?

javascript - Backbone : invoke containing view's function on ADD event

javascript - 在 Nodejs 中加密并使用 WebCrypto API 在客户端解密

javascript - 在严格模式下更改变量的类型

javascript - 无法在选择的更改时更新表字段

javascript - 更改后的选择值重置为之前的值

javascript - Jquery .on() Vue.js 渲染原始 HTML

javascript - 使用 setTimeout 延迟按钮上的样式更改