Convert a raw string to an array of big-endian words

Hello,

I would like to convert a raw string to an array of big-endian words.

As example, here is a JavaScript function that do it well (by Paul
Johnston):

/*

  • Convert a raw string to an array of big-endian words
  • Characters >255 have their high-byte silently ignored.
    */
    function rstr2binb(input)
    {
    var output = Array(input.length >> 2);
    for(var i = 0; i < output.length; i++)
    output[i] = 0;
    for(var i = 0; i < input.length * 8; i += 8)
    output[i>>5] |= (input.charCodeAt(i / 8) & 0xFF) << (24 - i % 32);
    return output;
    }

I believe the Ruby equivalent can be String#unpack(format).

However, I don’t know what should be the correct format parameter.

Thank you for any help.

Regards

Done! We can do it with:

str.unpack(‘N*’)

Regards

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs