Я могу преобразовать BCD в десятичный, например, я могу преобразовать 0x11 в 11 вместо 17 в десятичном формате. Это код, который я использовал.Как преобразовать десятичную обратную BCD?
unsigned char hex = 0x11;
unsigned char backtohex ;
int dec = ((hex & 0xF0) >> 4) * 10 + (hex & 0x0F);
Теперь я хочу, чтобы преобразовать dec
обратно представления BCD. Я хочу, чтобы 11 был преобразован обратно в 0x11, а не 0x0B. Я немного растерялся, как вернуться.
Спасибо!
Вы не можете использовать манипуляции с битами, но деление и операторы по модулю в цикле. –
Ваша функция hex-dec имеет недостатки; например, 0x0A и 0x10 оба преобразуются в 10. Таким образом, нет возможности «вернуться». Возможно, вы вообще не имеете в виду шестнадцатеричный, просто BCD. –
Я имею в виду только BCD, обновил вопрос. – Ammar