Разница между побитовыми операторами в php и ruby

У меня есть такой код в PHP:

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

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

hexdump показывает мне:

$ hexdump message.dat

0000000 3231 0039
0000003

Тот же код в Ruby:

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

hexdump показывает мне:

$ hexdump sockets/message.dat

0000000 0039
0000001

b1 должен быть равен 9 (десятичный). Шестнадцатеричный ASCII дает 39. Хорошо.
Но PHP дает дополнительные 3231 гекс.

Зачем?

PS. Я хочу конвертировать код PHP в Ruby. Это сервер WebSocket.
PHP-код работает правильно.
Вывод файла только для отладки.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]