【问题标题】:using bitwise OR in javascript to convert to integer在javascript中使用按位或转换为整数
【发布时间】:2012-09-23 14:44:38
【问题描述】:

我们可以做以下转换:

var a = "129.13"|0,  // becomes 129

var b = 11.12|0; // becomes 11

var c = "112"|0; // becomes 112

这似乎可行,但不确定这是否是标准的 JS 功能。有谁知道这是否可以安全地用于将字符串和小数转换为整数?

【问题讨论】:

  • 我想this 对你来说还不够复杂?
  • 按位运算符请参见 ECMAScript 规范:ecma-international.org/ecma-262/5.1/#sec-11.10。请注意,输入(以及输出)被转换为 Int32。
  • @MadaraUchiha 没有完全理解您的意思,但感谢您提供的链接

标签: javascript string integer bit-manipulation ecmascript-5


【解决方案1】:

是的,这是标准行为。位运算符仅对整数进行操作,因此它们将给出的任何数字转换为有符号的 32 位整数。

这意味着最大范围是带符号的 32 位整数减 1,即2147483647

(Math.pow(2, 32) / 2 - 1)|0; // 2147483647

(Math.pow(2, 32) / 2)|0; // -2147483648 (wrong result)

【讨论】:

    猜你喜欢
    • 2012-04-14
    • 2020-05-25
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多