Взятие первого байта длины строки

Я начал изучать Ruby, и я застрял, я перепробовал много вещей, но не могу решить проблему.

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

chr(strlen("root") & 0xFF);
chr(strlen("root") >> 8 & 0xFF);

И мне нужно изменить это на рубин.

Руби chr функция не позволяет мне делать >> 8 & 0xFF или просто & 0xFFЯ не знаю почему.

Я также не знаю, что это за функции, но я уверен, что они нужны мне, чтобы заставить мой код работать.

Если бы кто-нибудь мог мне помочь, было бы здорово объяснить и дать мне правильную функцию.

0

Решение

Я не знаю, правильно ли я понял ваш вопрос, но вы можете взять байты вашей строки следующим образом

string.bytes

и у вас будет массив с каждым байтом. И, чтобы получить символ любого из этих байтов, вы можете использовать

byte.chr

Например:

bytes_array = "I want a byte".bytes
=> [73, 32, 119, 97, 110, 116, 32, 97, 32, 98, 121, 116, 101]

И, чтобы вернуть первый байт в символ,

bytes_array[0].char
=> "I"

Например, если вы хотите использовать символы из первых 4 байтов, вы можете сделать это:

string = ""bytes_array[0..3].each do |b|
string << b.chr
end

У вас будет строка

=> "I wa"

Я надеюсь, что помог в чем-то.

0

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

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