Я начал изучать Ruby, и я застрял, я перепробовал много вещей, но не могу решить проблему.
У меня есть этот код в PHP:
chr(strlen("root") & 0xFF);
chr(strlen("root") >> 8 & 0xFF);
И мне нужно изменить это на рубин.
Руби chr
функция не позволяет мне делать >> 8 & 0xFF
или просто & 0xFF
Я не знаю почему.
Я также не знаю, что это за функции, но я уверен, что они нужны мне, чтобы заставить мой код работать.
Если бы кто-нибудь мог мне помочь, было бы здорово объяснить и дать мне правильную функцию.
Я не знаю, правильно ли я понял ваш вопрос, но вы можете взять байты вашей строки следующим образом
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"
Я надеюсь, что помог в чем-то.
Других решений пока нет …