Home * Programming * Data * Double Word
According to Intel's definition of a x86 16-bit Word, a Double Word refers a 32-bit entity, while IBM 360 and successors with 32-bit words have double words with 64-bit.
Contents
Integer and long
Even in x86-64, double words are still considered as default word size. x86 and and x86-64 C-Compiler use double words as signed and unsigned integers, Java integers as well. Microsoft 64 bit compiler long is a 32-bit Double word as well, while with 64-bit GCC uses 64-bit Quad Words as longs.
typedef unsigned int DWORD;
Ranges
language |
type |
min |
max |
|---|---|---|---|
unsigned int |
0 |
4,294,967,295 |
|
hexadecimal |
0x00000000 |
0xFFFFFFFF |
|
int |
-2,147,483,648 |
2,147,483,647 |
|
hexadecimal |
0x80000000 |
0x7FFFFFFF |
Alignment
Double Words stored in memory should be stored at byte addresses divisible by four. Otherwise at runtime it will cause a miss-alignment exception on some processors, or a huge penalty on others.
Endianness
Main article: Endianness.
Litte-endian Layout
The little-endian memory layout, as typical for Intel x86 cpus. For instance the double word integer 16909060 or 0x01020304:
| Address | Byte | Significance |
|---|---|---|
| 0x0000 | 0x04 | LS Byte |
| 0x0001 | 0x03 | |
| 0x0002 | 0x02 | |
| 0x0003 | 0x01 | MS Byte |
Big-endian Layout
The big-endian memory layout, as typical for Motorola cpus. For instance the double word integer 16909060 or 0x01020304:
| Address | Byte | Significance |
|---|---|---|
| 0x0000 | 0x01 | MS Byte |
| 0x0001 | 0x02 | |
| 0x0002 | 0x03 | |
| 0x0003 | 0x04 | LS Byte |