Тема: Код Грея
Показать сообщение отдельно
  #1  
Старый 12.05.2012, 14:37
Noqrax Noqrax вне форума
Прохожий
 
Регистрация: 06.04.2012
Сообщения: 8
Репутация: 10
Сообщение Код Грея

Здравствуйте,
В процессе программирования у меня возникла проблема.
Кодирование происходит по алгоритму (взято с википедии):

Код:
function BinToGray(b: integer): integer;
begin
  BinToGray := b xor (b shr 1)
end;

При вводе числа например 10110 программа выведет 13505, что не верно, ведь результат должен быть бинарным.

Ошибка конечно очевидна. Но я совсем не представляю как это организовать.

Xor адекватно работает с числами в 16-ричном представлении (если я не напутал), т.е. числа с $. Но опять же как перевести псевдо-бинарное число в шестнадцатиричную запись, а потом наоборот?
Ответить с цитированием