bit-shift

    5热度

    3回答

    如果转移的号码为正>>>和>>工作方式相同。 如果移位数为负>>>用ls而>>操作转移填充最高位为0 我的理解是否正确填写最显著位? 如果负数在MSB设置为1时存储,而不是Java使用的2s补码方式,那么运算符的表现完全不同,那么正确吗?

    5热度

    3回答

    我对PHP的左移函数的行为非常困惑。我在两台不同的机器(开发和托管)上使用它,他们给我不同的答案。我跟踪它到这个计算: (-3941404251) << 5; 在一台机器,我得到了答案-1570884448;另一方面,我得到0.在这两个系统上,PHP_INT_MAX = 2147483647.后者是一个32位系统,第一个64位,虽然PHP是作为一个32位进程运行,仍然给出了相同的答案。 我只能假设

    14热度

    3回答

    这更多的是语言设计而不是编程问题。 以下是从JLS 15.19 Shift Operators的摘录: 如果左边的操作数的提升的类型是int,只有右边的操作数的五个最低阶位被用作移动距离。 如果左侧操作数的升级类型为long,则只有右侧操作数的最低六位用作移位距离。 这种行为也是specified in C#,虽然我不知道这是否是在JavaScript中的官方规格(如果有一个),这也是事实至少基于

    5热度

    1回答

    我正在使用位移运算符(请参阅我的问题Bit Array Equality),并且SO用户指出了我计算我的移位操作数时的一个错误 - 我计算的是[1,32]而不是[0,31]为int。 (!万岁SO社区) 在解决了这个问题,我很惊讶地发现以下行为: -1 << 32 == -1 事实上,它似乎n << s编译(或由CLR-解释 - 我没有检查IL)为n << s % bs(n)其中bs(n)=

    7热度

    5回答

    嘿,我对位的自我学习,我看到在互联网上的某个地方,算术(>>)的数量减半。我想测试一下: 44 >> 1 returns 22, ok 22 >> 1 returns 11, ok 11 >> 1 returns 5, and not 5.5, why? 又如: 255 >> 1 returns 127 127 >> 1 returns 63 and not 63.5, why? 感

    21热度

    3回答

    我有一个非常大的数字:5799218898.并且想要将它右移到13位。 所以,Windows的计算器或Python给我: 5799218898 >> 13 | 100010100100001110011111100001 >> 13 70791 | 10001010010000111 正如预期的那样。 但使用Javascript: 5799218898 >> 13 | 10001

    1热度

    2回答

    我已经被赋予了从源头解析一些传入UDP数据包到适当的Java表示的艰巨任务。 kicker是数据包内保存的数据不是字节对齐的。为尽可能使协议尽可能紧凑,有许多位字段指示数据字段的存在或不存在。 例如,在位索引34处,您可能会发现应该转换为浮点数的24位字段。比特索引110可以是一个标志,指示接下来的3个场是每个包含一天的小时,分​​钟和秒的5和6比特值。 (这些只是由我组成,但代表了规范说明的内容

    3热度

    4回答

    我是新来的换挡位,但我想调试下面的代码片段: if (!(strcmp(arr[i].GetValType(), "f64"))) { dem_content_buff[BytFldPos] = tmp_data; dem_content_buff[BytFldPos + 1] = tmp_data >> 8; dem_content_buff[BytFldPos

    9热度

    2回答

    此问题不是this question的重复。 我遇到了一种情况,我可能不得不左移一个负值,即8 < < -1。在那种情况下,我希望结果是4,但我从来没有这样做过。所以我做了一个小测试程序来验证我的假设: for (int i = -8; i <= 4; i++) Console.WriteLine("i = {0}, 8 << {0} = {1}", i, 8 << i); 这让我震惊和

    1热度

    1回答

    我通过与ASM调试器OllyDbg的程序跟踪和我碰到过这样的代码段,这是一个环区段: CPU Disasm Address Hex dump Command Comments 007D05EC |. 33C9 XOR ECX,ECX 007D05EE |. 8BFF MOV EDI,EDI 007D05F0 |> 8B54B4 10 /MOV EDX,DWOR