program.c

来自「C51的两个程序,一个是将LONG型十六进制数据转换成LONG型的十进制数,另一」· C语言 代码 · 共 73 行

C
73
字号
//51单片机用的程序,有两个,如下
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
unsigned long htod(unsigned long convdata)//将一个十六进制数据转换成十进制数据
{                      //十六进制数据最大不能超过:0x05f5e0ff
unsigned long temp1,temp2;
unsigned char a1;

temp1=0;
a1=convdata/10000000;
temp1=a1;
temp1=temp1<<4;

temp2=convdata%10000000;
a1=temp2/1000000;
temp1 |=a1;
temp1=temp1<<4;

temp2=temp2%1000000;
a1=temp2/100000;
temp1 |=a1;
temp1=temp1<<4;

temp2=temp2%100000;
a1=temp2/10000;
temp1 |=a1;
temp1=temp1<<4;

temp2=temp2%10000;
a1=temp2/1000;
temp1 |=a1;
temp1=temp1<<4;

temp2=temp2%1000;
a1=temp2/100;
temp1 |=a1;
temp1=temp1<<4;

temp2=temp2%100;
a1=temp2/10;
temp1 |=a1;
temp1=temp1<<4;

a1=temp2%10;
temp1 |=a1;

return temp1;
}

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
unsigned long dtoh(unsigned long convdata)//将一个十进制数据转换为十六进制数据
{
  unsigned long temp;
                           
  temp=((convdata>>28)&0x0000000f)*10000000;

  temp=temp+((convdata>>24)&0x0000000f)*1000000;

  temp=temp+((convdata>>20)&0x0000000f)*100000;

  temp=temp+((convdata>>16)&0x0000000f)*10000;

  temp=temp+((convdata>>12)&0x0000000f)*1000;

  temp=temp+((convdata>>8)&0x0000000f)*100;

  temp=temp+((convdata>>4)&0x0000000f)*10;

  temp=temp+(convdata&0x0000000f);

  return temp;
}
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
// zxw36792116@hotmail.com

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?