Про числа со знаком тут уже достаточно сказали, поэтому рассмотрим сравнение натуральных чисел представленных цепочками (массивами) бит от старшего разряда к младшему. Для сравнения массивов одинаковой длины

есть простое правило:
Цитата:
Если имеются два массива

и

, то отношение

выполняется в том и только в том случае, если существует индекс

такой, что
![$x[k] < y[k]$ $x[k] < y[k]$](https://dxdy-04.korotkov.co.uk/f/f/2/5/f255d25e1e4a51dfc92112c58d52f55582.png)
и
![$x[i] = y[i]$ $x[i] = y[i]$](https://dxdy-04.korotkov.co.uk/f/3/e/d/3ede3b4da63aad947c9a5280c8d8882082.png)
для всякого

(Н. Вирт. Алгоритмы + Структуры данных = программы. М.: Мир, 1985, С.27.)
Не нарушая общности для определенности будем считать

.
Пусть результат сравнения

- массив из двух бит и пусть:

, если

;

, если

;

, если

Тогда:
Код:
// Шаг 1. Сравниваем x и y от старшего разряда к младшему:
if x[1] xor y[1] then k :=1 else
if x[2] xor y[2] then k :=2 else
…
if x[7] xor y[7] then k :=7 else k := 8;
// Шаг 2. Получаем результат:
if x[k] xor y[k] then
begin
z[1] := x[k] and 1;
z[2] := not z[1];
end
else
begin
z[1] := 0;
z[2] := 0;
end;