php和ruby中按位运算符的区别

时间:2016-05-14 11:02:24

标签: php ruby hex bitwise-operators hexdump

我在PHP中有这样的代码:

$b1 = 0x80 | (0x1 & 0x0f);

$file = fopen('message.dat', 'w') or die('cannot create file');
fwrite($file, $b1);
fclose($file);

hexdump告诉我:

$ hexdump message.dat 
<00> 0000000 3231 0039
0000003

Ruby中的相同代码:

b1 = 0x08 | (0x1 & 0x0f)
File.open('message.dat', 'w') { |file| file.write b1 }

hexdump告诉我:

$ hexdump sockets/message.dat 
<00> 0000000 0039
0000001

b1应该等于9(十进制)。十六进制ASCII给出了39.好的。 但PHP提供额外的3231十六进制。

为什么?

PS 即可。我想将PHP代码转换为Ruby。这是WebSocket服务器。 PHP代码正常工作。 文件输出仅用于调试。

0 个答案:

没有答案