现在的位置: 首页 > 综合 > 正文

简单、常用的字符串转二进制代码

2013年02月26日 ⁄ 综合 ⁄ 共 672字 ⁄ 字号 评论关闭
int
parse( TCHAR *strtext, unsigned char *binbuf )
{
	size_t l = _tcslen( strtext );
	int thelen = 0;
	size_t i;
	unsigned char a;
	unsigned short t;

	for( i = 0; i < l; i++ )
	{
		if( XIEGANG == strtext[ i ] )
		{
			do
			{
				strtext[ i ] = 0x20;
				i++;
			} while( 0x0a != strtext[ i ] && 0x0d != strtext[ i ] && 0x00 != strtext[ i ] );
		}
	}

	for( i = 0; i < l; i++ )
	{
		if( ( strtext[ i ] >= '0' && strtext[ i ] <= '9' ) ||
			( strtext[ i ] >= 'A' && strtext[ i ] <= 'F' ) ||
			( strtext[ i ] >= 'a' && strtext[ i ] <= 'f' ) )
		{
			if( strtext[ i ] >= '0' && strtext[ i ] <= '9' )
				a = strtext[ i ] - '0';
			if( strtext[ i ] >= 'A' && strtext[ i ] <= 'F' )
				a = strtext[ i ] - 'A' + 10;
			if( strtext[ i ] >= 'a' && strtext[ i ] <= 'f' )
				a = strtext[ i ] - 'a' + 10;

			thelen++;

			if( thelen % 2 )	//如果是第奇数个1,3,5
			{
				t = a;
			}
			else
			{
				t <<= 4;
				t += a;
				*( binbuf + ( thelen / 2 ) - 1 ) = ( unsigned char )t;
			}
		}
	}
	return thelen / 2;
}

适用于分行读入用"//"当注释的数据。

抱歉!评论已关闭.