Преобразовать целое число из (чистого) двоичного кода в BCD

м прямо сейчас тупо решить эту проблему ...

Я получаю номер BCD (каждая цифра является собственным 4-битным представлением)

Например, что я хочу:

Ввод: 202 (гекс) == 514 (дек)

Выход: BCD 0x415

Вход: 0x202

Битовое представление: 0010 0000 0010 = 514

Что я пробовал:

unsigned int uiValue = 0x202;
unsigned int uiResult = 0;
unsigned int uiMultiplier = 1;
unsigned int uiDigit = 0;


// get the dec bcd value
while ( uiValue > 0 )
{
    uiDigit= uiValue & 0x0F;
    uiValue >>= 4;
    uiResult += uiMultiplier * uiDigit;
    uiMultiplier *= 10;
}

Но я знаю этоочень неправильно, это будет 202 в битовом представлении, а затем разделить на 5 кусков и затем снова представить в виде десятичного числа

Я могу решить проблему на бумаге, но я просто не могу получить это в простом C-коде

Ответы на вопрос(5)

Ваш ответ на вопрос