C语言ASCII字符、16进制和BCD码值互转,各种好用的宏定义取值

您所在的位置:网站首页 c语言字符串转十进制 C语言ASCII字符、16进制和BCD码值互转,各种好用的宏定义取值

C语言ASCII字符、16进制和BCD码值互转,各种好用的宏定义取值

2024-06-21 11:44| 来源: 网络整理| 查看: 265

1、把Ascii字符转16进制

/*************************** 函数名:Ascii2Hex 功能描述:把Ascii字符转16进制 参数:Ascii字符 返回:16进制 ***************************/ unsigned char Ascii2Hex( unsigned char bAscii ) { unsigned char bHex = 0; if( ( bAscii >= 0 ) && ( bChar = 10 ) && ( bAscii = '0' ) && ( bHex = 'A' ) && ( bHex = 'a' ) && ( bHex > 4 ) & 0x0F ) * 10 ) + ( BcdCode & 0x0F ));   }

5、把2进制转BCD值

/*************************** 函数名:Bin2BCD 功能描述:把2进制转BCD值 参数:2进制值 返回:BCD值 ***************************/ u_8 Bin2BCD( u_8 BinCode ) {     return( ( ( (BinCode)/10 ) (y))?(y):(x))

10、x,y值中的最大值

/*********x,y值中的最大值**********/ #define X_MAX( x ,y )           (((x)>(y))?(x):(y))

11、取i值的低8位

/*********取i值的低8位**********/ #define GET_4_BYTE(i)    (u_8)( ( (i) & 0xFF ) >> 0 )

12、取i值的8-16位

/*********取i值的8-16位**********/ #define GET_3_BYTE(i)    (u_8)( ( (i) & 0xFF00 ) >> 8 )

13、取i值的16-24位

/*********取i值的16-24位**********/ #define GET_2_BYTE(i)    (u_8)( ( (i) & 0xFF0000 ) >> 16 ) 

14、取i值的24-32位

/*********取i值的24-32位**********/ #define GET_1_BYTE(i)    (u_8)( ( (i) & 0xFF000000 ) >> 24 )

15、4个字节为int型变量

/*********4个字节为int型变量**********/ #define BYTE_TO_INT( byte,byte1,byte2,byte3 )    ( (byte8)&0xff;\                                             (byte)[3] = ((Val))&0xff;\                                         }while(0)

18、short型变量为2个字节

/*********short型变量为2个字节**********/ #define SHORT_TO_BYTE( Val ,byte)     do{ (byte)[0] = ((Val)>>8)&0xff;\                                              (byte)[1] = (Val)&0xff;\                                         }while(0)

19、标准时间time转换字符串输出

/*********标准时间time转换字符串输出**********/ #define TIME_2_STR(t, str) do{ tm_t tmtime;\          gmtime_r( (time_t *)&t,&tmtime );\          sprintf(str,"%04d-%02d-%02d %02d:%02d:%02d",1900 + tmtime.tm_year, tmtime.tm_mon + 1, \                           tmtime.tm_mday,tmtime.tm_hour, tmtime.tm_min, tmtime.tm_sec);\                           }while(0)  

20、IP值转换IP字符串输出                           

/*********IP值转换IP字符串输出**********/ #define IPADDR_2_STR(lIp, str) do{ u_8 ipaddr[4];\      memcpy (&(ipaddr[0]), &(lIp), 4);\                             sprintf(str,"%03d.%03d.%03d.%03d",ipaddr[0],ipaddr[1],ipaddr[2],ipaddr[3]);\                                   }while(0)  

     

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3