【问题标题】:Binary notation for bit comparison用于位比较的二进制表示法
【发布时间】:2011-11-11 16:30:52
【问题描述】:

你能帮我用 PHP 代码 Javascript 写一个二进制符号吗?

158 是十进制,0xFF 是十六进制,0154 是八进制,但是二进制呢?

我想在 php 中设置一个值并在 Javascript 中读取它:

PHP:

$error &= 1000 (here must be the binary notation)
$error &= 0010

Javascript:

if (error & 0010) {alert(1)}

非常感谢,感谢您的帮助。

部分答案在这里,PHP 似乎什么都没有: What's the prefix for binary in PHP?

【问题讨论】:

  • 这在 JavaScript 中是不可能的。看到这个问题:stackoverflow.com/questions/2803145/…
  • 你可以用十六进制写。它不像二进制那么简单,但是 0x01, 0x02, 0x04, ... 0x40, 0x80 使您可以将特定位声明为 on。
  • @Nicolas Thery - 出于所有意图和目的,“二进制”== 十六进制。处理它:) 恕我直言...

标签: php javascript syntax binary


【解决方案1】:

PHP 表示法是:

0b0010

...但仅限于PHP 5.4 及以上。

【讨论】:

    【解决方案2】:

    php 中不存在二进制字面量。二进制操作通常以十六进制完成,

    error & 0010 (binary)
    

    可以替换为

    error & 0x2
    

    另外,请参阅此相关帖子What's the prefix for binary in PHP?

    【讨论】:

    • 十进制有效,但一般来说,您应该查看十六进制来思考和编码二进制数。查看任何大小的十六进制数并转换为二进制(反之亦然)是微不足道的。十进制在你的脑海中更难转换为二进制,除了非常小的数字。
    【解决方案3】:

    最后,没有符号,我将使用我的二进制文件的十进制值并将二进制值放在注释中:

    PHP:

    $error &= 8; //1000 
    $error &= 2; //0010
    

    Javascript:

    if (error & 2) {alert(1)}
    

    【讨论】:

    • 不要使用小数。熟悉十六进制。
    • @Nicolas,十六进制的优点是与二进制一样“对齐”。每个字符实际上是一个 4 位组。当您需要在脑海中考虑一些标志时,它在视觉上非常有用,尤其是在较长的数字上。例如。这个计算很明显0x1000 & 0x1234 = 0x1000:你可以对这个位置的字符进行按位运算。在十进制中,4096 & 4660 是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 2022-11-25
    • 1970-01-01
    • 2019-03-10
    • 2021-12-21
    • 2016-03-17
    • 1970-01-01
    相关资源
    最近更新 更多