Convertir entero de binario (puro) a BCD
Soy demasiado estúpido ahora para resolver este problema ...
Obtengo un número BCD (cada dígito es una representación propia de 4 bits)
Por ejemplo, lo que quiero:
Entrada: 202 (hexadecimal) == 514 (dec)Salida: BCD 0x415
Entrada: 0x202
Representación de bits: 0010 0000 0010 = 514¿Qué he intentado?
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;
}
Pero sé que está muy mal, esto sería 202 en representación de bits y luego se dividiría en 5 nibbles y luego se representaría como un número decimal nuevamente.
Puedo resolver el problema en papel, pero no lo consigo en un simple C-Code