Прямой, обратный и дополнительный коды: Теория и примеры