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