Ruby/Array/pack

Материал из Wiki.crossplatform.ru

Перейти к: навигация, поиск

Array Pack Directives

Directive   Description
@           Moves to absolute position
A           ASCII string (space padded; count is width)
a           ASCII string (null padded; count is width)
B           Bit string (descending bit order)
b           Bit string (ascending bit order)
C           Unsigned char
c           Char
D, d        Double-precision float, native format
E           Double-precision float, little-endian byte order
e           Single-precision float, little-endian byte order
F, f        Single-precision float, native format
G           Double-precision float, network (big-endian) byte order
g           Single-precision float, network (big-endian) byte order
H           Hex string (high nibble first)
h           Hex string (low nibble first)
I           Unsigned integer
i           Integer
L           Unsigned long
l           Long
M           Quoted-printable, MIME encoding (see RFC 2045)
m           Base64-encoded string
N           Long, network (big-endian) byte order
n           Short, network (big-endian) byte order
P           Pointer to a structure (fixed-length string)
p           Pointer to a null-terminated string
Q, q        64-bit number
S           Unsigned short
s           Short
U           UTF-8
u           UU-encoded string
V           Long, little-endian byte order
v           Short, little-endian byte order
w           BER-compressed integer\fnm
X           Backs up a byte
x           Null byte
Z           Same as a, except that null is added with *



Binary conversion with pack. See also String.unpack.

[1,2,3,4].pack("CCCC")    # => "\001\002\003\004"
[1,2].pack("s2")          # => "\001\000\002\000"
[1234].pack("i")          # => "\322\004\000\000"