Quad+Word

toc
 * Home * Programming * Data * Quad Word**

According to Intel's definition of a x86 16-bit Word, a **Quad Word** refers a 64-bit word.

=long long or long= Microsoft 64-bit C-compiler long is still 32-bit Double Word, while 64-bit GCC uses 64-bit Quad Words as longs. Other compiler require "long long" for 64-bit types.

code format="cpp" typedef unsigned long QWORD; typedef unsigned long long QWORD; code

=Bitboards= Quad words are used as bitboard datatype: code format="cpp" typedef QWORD U64; typedef QWORD Bitboard; code

=Ranges=
 * ~ type ||~ language ||~ min ||~ max ||
 * unsigned long long || C, C++ ||> 0 ||> 18,446,744,073,709,551,615 ||
 * hexadecimal ||  ||> 0x0000000000000000 ||> 0xFFFFFFFFFFFFFFFF ||
 * long long || C, C++, Java ||> -9,223,372,036,854,775,808 ||> 9,223,372,036,854,775,807 ||
 * hexadecimal ||  ||> 0x8000000000000000 ||> 0x7FFFFFFFFFFFFFFF ||

=Alignment= Quad Words stored in memory should be stored at byte addresses divisible by eight. 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 cpus. For instance the quad word integer 0x0102030405060708
 * ~ Address ||~ Byte ||~ Significance ||
 * 0x0000 || 0x08 ||= LS Byte ||
 * 0x0001 || 0x07 ||=  ||
 * 0x0002 || 0x06 ||=  ||
 * 0x0003 || 0x05 ||=  ||
 * 0x0004 || 0x04 ||=  ||
 * 0x0005 || 0x03 ||=  ||
 * 0x0006 || 0x02 ||=  ||
 * 0x0008 || 0x01 ||= MS Byte ||

Big-endian layout
The big-endian memory layout, as typical for Motorola cpus. For instance the quad word integer 0x0102030405060708
 * ~ Address ||~ Byte ||~ Significance ||
 * 0x0000 || 0x01 ||= MS Byte ||
 * 0x0001 || 0x02 ||  ||
 * 0x0002 || 0x03 ||  ||
 * 0x0003 || 0x04 ||  ||
 * 0x0004 || 0x05 ||  ||
 * 0x0005 || 0x06 ||  ||
 * 0x0006 || 0x07 ||  ||
 * 0x0007 || 0x08 ||= LS Byte ||

=See also=
 * Byte
 * Word
 * Double Word
 * Bitboards

=External Links=
 * [|Dword, Qword, and Oword from Wikipedia]
 * [|Byte from Wikipedia]
 * [|Endianness from Wikipedia]
 * [|Understanding Big and Little Endian Byte Order]
 * [|IEN 137 - DAV's Endian FAQ - On Holy Wars and a Plea for Peace] by [|Danny Cohen], [|U S C/I S I], April 1, 1980

=What links here?= include page="Quad Word" component="backlinks" limit="40"
 * Up one Level**