3. Численные примеры
Ниже рассматриваются явные примеры расчета сумм дополнений до 1 на машине с дополнением до 2. Примеры показывают, как одну и ту же сумму можно рассчитать путем сложения байтов, 16-битовых слов с нормальным и измененным порядком байтов, а также 32-битовых слов с 3 вариантами порядка байтов. Все числа задаются в шестнадцатеричном формате.
Byte-by-byte "Normal" Swapped Order Order Byte 0/1: 00 01 0001 0100 Byte 2/3: f2 03 f203 03f2 Byte 4/5: f4 f5 f4f5 f5f4 Byte 6/7: f6 f7 f6f7 f7f6 --- --- ----- ----- Sum1: 2dc 1f0 2ddf0 1f2dc dc f0 ddf0 f2dc Carrys: 1 2 2 1 -- -- ---- ---- Sum2: dd f2 ddf2 f2dd Final Swap: dd f2 ddf2 ddf2 Byte 0/1/2/3: 0001f203 010003f2 03f20100 Byte 4/5/6/7: f4f5f6f7 f5f4f7f6 f7f6f5f4 -------- -------- -------- Sum1: 0f4f7e8fa 0f6f4fbe8 0fbe8f6f4 Carries: 0 0 0 Top half: f4f7 f6f4 fbe8 Bottom half: e8fa fbe8 f6f4 ----- ----- ----- Sum2: 1ddf1 1f2dc 1f2dc ddf1 f2dc f2dc Carrys: 1 1 1 ---- ---- ---- Sum3: ddf2 f2dd f2dd Final Swap: ddf2 ddf2 ddf2
В заключение приводится пример суммирования в виде двух групп, из которых вторая начинается на нечетной границе.
Byte-by-byte Normal Order Byte 0/1: 00 01 0001 Byte 2/ : f2 (00) f200 --- --- ----- Sum1: f2 01 f201 Byte 4/5: 03 f4 03f4 Byte 6/7: f5 f6 f5f6 Byte 8/: f7 (00) f700 --- --- ----- Sum2: 1f0ea Sum2: f0ea Carry: 1 ----- Sum3: f0eb Sum1: f201 Sum3 byte swapped: ebf0 ----- Sum4: 1ddf1 Sum4: ddf1 Carry: 1 ----- Sum5: ddf2