Data arrangement - Big-endian  Little-endian

  Data arrangement based on design of CPU and bus.

  A stored value may span several bytes of storage and may be larger
    that the size of the data bus. 

    Little endian - The lower portion of the value being stored is stored
      in the lower or starting address of memory.
      Common in machines that (historically) use an 8 bit data bus.
        Even if current designs have larger data buses.

    Big endian - The higher portion of the value being stored is stored
       in the starting address of memory.
       Common in machines initially designed with 16/32 bit data buses.

  Storing the 32 bit hex value 1A140042 and the string "howdy" starting at 
  memory address sequence start at @10

     Memory locations
     @ 10  11  12  13  14  15  16  17  18

     Big endian
       1A  14  00  42   o   h   d   w       y   

     Little endian
       6f  68  64  77  0a  79                h   o   w   d   y       


     Unicode includes a flag to indicate endian-ness.

  Working with numbers.
    MOS Technology 6502 8-bit architecture

   ; assume 4 bytes of 1st 32-bit number store at $2000-$2003 and 
   ; 2nd number at $2010-$2013 in low endian form.
   ; numbers in parentheses are clock cycles for instruction.
 
CLC        ; (1) Clear carry flag  C = 0;
LDA $2000  ; (4) Load low byte of data found at memory $2000 into accumulator
ADC $2010  ; (4) Add low byte of data found at $2010, also add carry flag (0)
           ;     If resulting value is larger than 8-bits, carry set to 1.
STA $2020  ; (4) Store low byte at $2020;
LDA $2001  ; (4) Load 2nd byte 1st number
ADC $2011  ; (4) Add 2nd byte of 2nd number, add carry.  If result is larger
           ;     than 8-bit, carry set to 1 else carry set to 0.
STA $2021  ; (4) Store 2nd byte.
LDA $2002  ; (4) Load 3rd byte of 1st number.
ADC $2012  ; (4) Add 3rd byte of 2nd number, add carry. Adjust carry.

33 clock cycles to add two 24-bit numbers. A 32-bit number would require
  an additional 12 clock cycles.

Store and repeat until all bytes added. 

* Big-endian / little endian also affect how data is transferred between
  systems. 

  Some CPUs (RISC) provide for the ability to handle both formats when 
    transferring data in to/out of systems.

  But more often handled with software.

  Unicode also has features that help warn systems which order multi-byte
    Unicode characters are stored in.