pack and unpack are useful tools for generating strings of bytes for interchange and extracting values from such strings respectively. What follows are two table that represents the relevant formats in a convenient form.

Category Type Byte Order Mnemonic
Native Little-Endian (<) Big-Endian (>)
Fixed-Size
Integers
8-bit
integer
Unsigned C "C" for char
Signed c
16-bit
integer
Unsigned S S< or v S> or n "S" for short
Signed s s< or v! s> or n!
32-bit
integer
Unsigned L L< or V L> or N "L" for long
Signed l l< or V! l> or N!
64-bit
integer
Unsigned Q Q< Q> "Q" for quad
Signed q q< q>
 
Types Used
By This Build
of perl
UV (unsigned integer) J J< J> "J" is related to "I"
IV (signed integer) j j< j>
NV (floating-point) F F< F> "F" for float
 
Underlying
C Types for
This Build
of perl
char
unsigned char
signed char
unsigned short int S! S!< S!> "S" for short
signed short int s! s!< s!>
unsigned int I! or I I!< or I< I!> or I> "I" for int
signed int i! or i i!< or i< i!> or i>
unsigned long int L! L!< L!> "L" for long
signed long int l! l!< l!>
unsigned long long int
signed long long int
float f f< f> "f" for float
double d d< d> "d" for double
long double D D< D> A bigger double

For the pointers used by this build of perl, you can use the following:

use Config qw( %Config ); use constant PTR_SIZE => $Config{ptrsize}; use constant PTR_PACK_FORMAT => PTR_SIZE == 8 ? 'Q' : PTR_SIZE == 4 ? 'L' : die("Unrecognized ptrsize\n");

Notes:


In reply to Mini-Tutorial: Formats for Packing and Unpacking Numbers by ikegami

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.