Compact 16-bit signed integer: audio samples, embedded systems, and sensor data
A 16-bit integer uses 16 bits to store a whole number. For INT16 (signed), the most significant bit is the sign bit using two's complement. For the unsigned variant, see UINT16.
16-bit integers are widely used where the range of ±32,767 or 0–65,535 is sufficient and memory conservation matters. They are the short type in C/C++ and Java.
| Property | Signed (INT16) | Unsigned (UINT16) |
|---|---|---|
| Total Bits | 16 | 16 |
| Minimum Value | -32,768 | 0 |
| Maximum Value | 32,767 | 65,535 |
| Representable Values | 65,536 | 65,536 |
| Value | Bit Pattern | Signed | Unsigned |
|---|---|---|---|
| Zero | 0000000000000000 | 0 | 0 |
| One | 0000000000000001 | 1 | 1 |
| Max Unsigned | 1111111111111111 | -1 | 65535 |
| Max Signed | 0111111111111111 | 32767 | 32767 |
| All Ones (-1) | 1111111111111111 | -1 | 65535 |
| Min Signed (-32768) | 1000000000000000 | -32768 | 32768 |
Click any bit to flip it. See both signed and unsigned interpretations.
| Property | INT16 | INT32 | INT8 | INT4 |
|---|---|---|---|---|
| Total Bits | 16 | 32 | 8 | 4 |
| Signed Min | -32,768 | -2,147,483,648 | -128 | -8 |
| Signed Max | 32,767 | 2,147,483,647 | 127 | 7 |
| Unsigned Max | 65,535 | 4,294,967,295 | 255 | 15 |
| Step (ULP) | 1 | 1 | 1 | 1 |
| Values | 65,536 | 4,294,967,296 | 256 | 16 |
.s16x2 packed types (two signed 16-bit integers in a 32-bit register) with add/sub/min/max and .sat qualifier support.torch.int16 for signed 16-bit tensor storage. The ONNX specification defines INT16 = 5 as a tensor data type.i16 × i16 → i32 signed dot-product (sdot2) operations on gfx906+ architectures.