Преобразовать целое число из (чистого) двоичного кода в 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-коде