This is a temporary, read-only recovery of the chessprogrammingwiki while a longer-term plan is worked out. Editing is not possible right now, but will be again soon.
Chess Programming Wiki All pages Other namespaces

Double Word

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
  1. Integer and long
  2. Ranges
  3. Alignment
  4. Endianness
    1. Litte-endian Layout
    2. Big-endian Layout
  5. See also
  6. External Links

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

C, C++

unsigned int

0

4,294,967,295

hexadecimal

0x00000000

0xFFFFFFFF

C, C++,
Java

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

See also

Up one Level

What links here

Contributors: GerdIsenberg.