📄 conversion numerica.c
字号:
/*_____________________________________________________________________________________________________________________________________________________________________________
conversion numerica.c
Version 1.0 Julio 9 2008
Declaracion de las funciones que forman la biblioteca de conversion de valores en formato hexa a decimal y viceversa
Ubiquos Ltda. Alexander Espinosa G.
_____________________________________________________________________________________________________________________________________________________________________________*/
/*_____________________________________________________________________________________________________________________________________________________________________________
convertir_bcd(Valor, *Buffer)
Version 1.0
Esta funcion toma el parametro VAlor y lo convierte en una secuencia de bytes de 8 bits correspondiente a su valor BCD, almacenandolo
en el Buffer, que entra como parametro
Entradas: Valor- entero sin signo
Salidas: Buffer donde se almacenara el resultado, debe ser de al menos 5 posiciones
Ubiquos Ltda. Alexander Espinosa G.
_____________________________________________________________________________________________________________________________________________________________________________*/
void convertir_bcd(unsigned int Valor,unsigned char *Buffer)
{
*Buffer = (Valor / 10000); Buffer++; // Calcula el digito mas significativo y lo almacena
*Buffer = (Valor % 10000) / 1000; Buffer++; // estas lineas calculan los digitos intermedios
*Buffer = (Valor % 1000) / 100; Buffer++;
*Buffer = (Valor % 100) / 10; Buffer++;
*Buffer = Valor % 10; // Calcula el digito menos significativo
}
/*_____________________________________________________________________________________________________________________________________________________________________________
convertir_hexa(*Buffer, Nro_digitos)
Version 1.0
Esta funcion convierte el valor guardado en el buffer, con un numero de digitos determinado por Nro_digitos
Entradas: Buffer donde esta almacenado el numero decimal
Nro_digitos: El numero de digitos que tiene el valor que se desea convertir
Salidas: Un valor entero sin signo que corresponde al numero convertido a Hexa
Ubiquos Ltda. Alexander Espinosa G.
_____________________________________________________________________________________________________________________________________________________________________________*/
unsigned int convertir_hexa(unsigned char *Buffer, unsigned char Nro_digitos)
{
unsigned int Valor; // Valor resultante de la conversion
unsigned int Multiplicador;
unsigned char Contador_digitos;
// Elegir el multiplicador inicial
if(Nro_digitos==1) Multiplicador=1;
if(Nro_digitos==2) Multiplicador=10;
if(Nro_digitos==3) Multiplicador=100;
if(Nro_digitos==4) Multiplicador=1000;
if(Nro_digitos==5) Multiplicador=10000;
Contador_digitos=0;
Valor=0;
do
{
Valor+= (*Buffer)*Multiplicador; // Calcula el valor del digito de turno y lo acumula
Buffer++; // Apuntar al proximo digito a convertir
Multiplicador/=10; // y prepara el multiplicador para el siguiente digito de menor significado
}
while(++Contador_digitos<=Nro_digitos);
return Valor;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -