2014-11-30 2 views
-1

Чтобы преобразовать (213AFE)H в BCD, сначала оно должно быть преобразовано в двоичное, что дает (2177790)D. Теперь каждая цифра преобразуется в свой код BCD, который дает (0010 0001 0111 0111 0111 1001 0000)BCD.Преобразование с шестнадцатеричного в BCD

Другим способ заключается в преобразовании шестнадцатеричного значения в двоичный, который дает (0010 0001 0011 1010 1111 1110)B, а затем сделать КОР отрегулировать путем добавления 6 к каждой цифре, превышающей 9 следующим образом:

0010 0001 0011 1010 1111 1110 
+    0110 0110 0110 
----------------------------- 
0010 0001 0100 0001 0110 0100 -> 35092368D 

Конечный результат в процессах выше различен , Второй метод неправильный? Зачем?

+0

Почему, по вашему мнению, второй метод верен? –

+0

Если у вас есть десятичное преобразование, его очень легко кодировать в BCD. Все, что вам нужно, это цикл, деление и модуляция для получения цифр, а также операторы сдвига и сложения для создания кодировки BCD. –

+0

Кроме того, вам обычно не нужно делать какие-либо преобразования * input *, если это числовое значение для начала, поскольку все данные хранятся в двоичном формате в любом случае, а шестнадцатеричные или десятичные - это просто способы представления двоичного числа. –

ответ

-1

Второй метод не является НЕПРАВИЛЬНЫМ, но на самом деле является частью основного метода преобразования, то есть число, большее 9, всегда должно быть скорректировано методом корректировки BCD (добавив 6) ответ, который вы получаете от него, является действительным BCD!

Смежные вопросы