Консультация № 108907
11.11.2007, 10:18
0.00 руб.
0 1 1
Уважаемые эксперты, помогите решить задачки.
1. Произвести преобразование кода Грея в двоичное число 11010100101100
2. Произвести преобразование десятичного числа в двоичное и определить для него код грея. Чило 93. В двоичное перевела получилось 1011101. Дальше я составила таблицу для кодовых комбинаций и у меня поучилось в коде грея 11000111. Не знаю правильно или нет. Первый раз с таким заданием сталкиваюсь.
Заранее спасибо.

Обсуждение

Неизвестный
12.11.2007, 01:20
общий
это ответ
Здравствуйте, lyalya!

1. Произвести преобразование кода Грея в двоичное число 11010100101100

Для каждого бита считаем сколько перед ним (слева, в старших разрядах) 1 в коде Грея.
Если нечётное, то инвертируем, если чётное осталяем без изменения

11010100101100
01223344455677 число единиц перед битом
01001100011011 маска для инвертирования: 1 - инвертируем, 0 - оставляем
11010100101100 копия кода Грея для удобства
10011000110111 наше двоичное число

2. Произвести преобразование десятичного числа в двоичное и определить для него код грея.
Чило 93. В двоичное перевела получилось 1011101.
Дальше я составила таблицу для кодовых комбинаций и у меня поучилось в коде грея 11000111.
Не знаю правильно или нет. Первый раз с таким заданием сталкиваюсь.

93 в двоичном виде Вы нашли правильно.
Код Грея из двичного представления получается как b^(b>>1), где ^ - побитовый XOR (сложение по модулю 2, исключающее ИЛИ), а >> - сдвиг на 1 разряд вправо.
1011101 b
.101110 b>>1 (поставил спереди точку, чтобы форматтер не убрал пробел)
1110011 g = b^(b>>1) (В каждом разряде оставляем 0, если оба бита одинаковы, 1 - если один бит 0, а другой 1)

Форма ответа