El número decimal en la memoria está representado por una combinación de códigos BCD y el programa C lo convierte en código ASCII.
Un código ASCII requiere hasta cuatro códigos BCD para almacenarse, lo que equivale a dos bytes. Por ejemplo, el valor del código ASCII de 'A' es 65, que es 0000,0000,0110,0101 en BCD; el valor del código ASCII de '1' es 49, que es 0000,0000,0100,1001 en BCD. La pregunta ahora es, ¿cómo se proporcionan estos códigos BCD? Esto supone que el código BCD se representa como un valor entero, por ejemplo, el valor del código ASCII de 'e' es (101)10 y el BCD representado como un número entero es 0000,0001,0000,0001, que es 257. #include?
const?int?MAXLEN?=?128;
int?main()?{
char?{101,277,104,130 ,72,73,66};//?AsDR12*
int?i,j,t,p,m,k?=?0,n?=?tamañode(bcds)/tamañode(bcds [0]);
for(i?=?0; ?i?< ?n;? ++i)?{
t?=?bcds[i];
m?=?0;
for(j?=?0;?j?4;? ++j)?{
p ?=?(t?&?0XF000)? >>?12;
m?=?10?*?m?+?p;
t?<<=? 4;
}
asciis[k++]? =?m;
}
asciis[k] =?\0 ';
printf("%s\n",asciis);
¿regresar?