Packs the values into a binary structure using template.
Unpacks the structure expr into an array, using template.
template is a sequence of characters as follows:
| a | / | A | ASCII string, null- / space-padded |
| b | / | B | Bit string in ascending / descending order |
| c | / | C | Native / unsigned char value |
| f | / | d | Single / double float in native format |
| h | / | H | Hex string, low / high nybble first. |
| i | / | I | Signed / unsigned integer value |
| l | / | L | Signed / unsigned long value |
| n | / | N | Short / long in network (big endian) byte order |
| s | / | S | Signed / unsigned short value |
| u | / | p | Uuencoded string / pointer to a string |
| v | / | V | Short / long in VAX (little endian) byte order |
| x | / | @ | Null byte / null fill until position |
| X | Backup a byte |
Each character may be followed by a decimal number that will be used as a repeat count; an asterisk (*) specifies all remaining arguments. If the format is preceded with %n, unpack returns an n-bit checksum instead. Spaces may be included in the template for readability purposes.