Each sample is contained in an integer i. The size of i is the smallest number of bytes required to contain the specified sample size. The least significant byte is stored first. The bits that represent the sample amplitude are stored in the most significant bits of i, and the remaining bits are set to zero.
For example, if the sample size (recorded in <nBitsPerSample>) is 12 bits, then each sample is stored in a two-byte integer. The least significant four bits of the first (least significant) byte is set to zero.
The data format and maximum and minimum values for PCM waveform samples of various sizes are as follows:
Sample Size | Data Format | Maximum Value | Minimum Value |
One to eight bits | Unsigned integer | 255 (0xFF) | 0 |
Nine or more bits | Signed integer i | Largest positive value of i | Most negative value of i |
For example, the maximum, minimum, and midpoint values for 8-bit and 16-bit PCM waveform data are as follows:
Format | Maximum Value | Minimum Value | Midpoint Value |
8-bit PCM | 255 (0xFF) | 0 | 128 (0x80) |
16-bit PCM | 32767 (0x7FFF) | –32768 (–0x8000) | 0 |