【问题标题】:How does the expression "float | 0" produces an integer? [duplicate]表达式“float | 0”如何产生整数? [复制]
【发布时间】:2014-07-28 18:21:14
【问题描述】:

请描述 5.55 | 0 如何在 JavaScript 中生成 5。我想知道这个按位运算发生了什么。谢谢!

【问题讨论】:

标签: javascript operators bit-manipulation bitwise-operators


【解决方案1】:

Javascript 中的按位运算符会自动将其参数强制转换为 32 位整数值,方法是删除分数和超过 32 的任何高位。所以

5.55 | 0

被视为:

5 | 0

【讨论】:

    【解决方案2】:

    按位运算的操作数总是以大端顺序和二进制补码格式转换为有符号 32 位整数。

    那就是

        00000000000000000000000000000101
    or  00000000000000000000000000000000
    ------------------------------------ 
        00000000000000000000000000000101
    

    【讨论】:

    • 它们实际上不是字节序中立的吗?
    • 嗯,也许这样更容易理解移位操作。
    猜你喜欢
    • 1970-01-01
    • 2012-04-16
    • 2016-09-24
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多