各种数据转换
来源:互联网 发布:js判断div是否隐藏 编辑:程序博客网 时间:2024/06/06 16:18
//全局工具函数
/*
* 函数介绍:int转BYTE*
* 输入参数:整数number,整数占字节大小
* 输出参数:转换后的BYTE*
* 返回值 :void
*/
void gf_intToBytes(const int number,BYTE* pBYTE,int size = 4)
{
memset(pBYTE, 0, sizeof(BYTE) * size);
pBYTE[0] = (BYTE) (0xff & number);
pBYTE[1] = (BYTE) ((0xff00 & number) >> 8);
pBYTE[2] = (BYTE) ((0xff0000 & number) >> 16);
pBYTE[3] = (BYTE) ((0xff000000 & number) >> 24);
return ;
}
/*
* 函数介绍:BYTE*转int
* 输入参数:BYTE*
* 输出参数:
* 返回值 :整形num
*/
int gf_bytesToInt(const BYTE* pBYTE)
{
if(pBYTE == NULL)
return -1;
int number = pBYTE[0] & 0xFF;
number |= ((pBYTE[1] << 8) & 0xFF00);
number |= ((pBYTE[2] << 16) & 0xFF0000);
number |= ((pBYTE[3] << 24) & 0xFF000000);
return number;
}
/*
* 函数介绍:char*转BYTE*
* 输入参数:字符串char*
* 输出参数:转换后的BYTE*
* 返回值 :void
*/
void gf_StringToBytes(const char* str, BYTE* pBYTE)
{
if(str ==NULL || pBYTE == NULL)
return ;
int iLen = 0;
iLen = strlen(str);
for(int i=0,j=0; i<iLen-1; i+=2,++j)
{
int l_iTemp = 0;
char l_chTemp[2];
l_chTemp[0] = str[i];
l_chTemp[1] = str[i+1];
l_iTemp = gf_CharToInt(l_chTemp);
pBYTE[j] =l_iTemp;
}
return ;
}
/*
* 函数介绍:BYTE*转char*
* 输入参数:BYTE*,pBytes长度
* 输出参数:转换后的char*
* 返回值 :void
*/
void gf_BytesToString(BYTE* pBytes, int len, char* pStr)
{
if(pBytes == NULL || pStr == NULL)
return ;
for(int i=0; i<len; i++)
{
pStr[i] = (char)(pBytes[i] & 0xff);
}
}
/*
* 函数介绍:两位char转int
* 输入参数:字符串char
* 输出参数:
* 返回值 :转换后int
*/
int gf_CharToInt(char str[2])
{
if(str == NULL)
return -1;
int left = 0;
int right = 0;
if (str[0]>='0' && str[0]<='9')
left = str[0]-'0';
else if(str[0]>='a' && str[0]<='f')
left = str[0]-'a'+10;
else if(str[0]>='A' && str[0]<='F')
left = str[0]-'A'+10;
else
return -1;
if (str[1]>='0' && str[1]<='9')
right = str[1]-'0';
else if(str[1]>='a' && str[1]<='f')
right = str[1]-'a'+10;
else if(str[1]>='A' && str[1]<='F')
right = str[1]-'A'+10;
else
return -1;
return left*16+right;
}
/*
* 函数介绍:八位char*转BYTE
* 输入参数:字符串char*
* 输出参数:
* 返回值 :转换后BYTE
*/
BYTE gf_CharsToByte(char* chStr, int length)
{
BYTE bySum = 0;
for(int i=length-1; i>=0; i--)
{
if(chStr[i] == '1')
{
int iTemp = length - i - 1;
bySum += pow(2.0, iTemp);
}
}
return bySum;
}
/*
* 函数介绍:拷贝BYTE*
* 输入参数:源BYTE*,起始位置,拷贝长度
* 输出参数:目的BYTE*
* 返回值 :TRUE/FALSE
*/
BOOL gf_BytesNCopy(const BYTE* source, int start, int len, BYTE* des)
{
if(start < 0 || len < 0 || source == NULL)
{
return FALSE;
}
int end = start + len;
for(int i=start,j=0; i<end; ++i,++j)
{
des[j] = source[i];
}
return TRUE;
}
/*
* 函数介绍:int转BCD
* 输入参数:int,整型占字节长度
* 输出参数:目的BYTE*
* 返回值 :TRUE/FALSE
*/
BOOL gf_DecToBCD(int Dec, BYTE *Bcd, int length)
{
int tmp;
for(int i = length - 1; i >= 0; i--)
{
tmp = Dec % 100;
Bcd[i] = ((tmp / 10) << 4) + ((tmp % 10) & 0x0F);
Dec /= 100;
}
return TRUE;
}
- java各种数据转换
- java各种数据转换
- 各种数据转换
- 各种数据转换::::转载
- 各种数据转换::::转载
- 12,各种数据的类型转换
- java各种数据转换成json
- json转换为各种数据对象格式
- Python各种数据进制转换
- java中各种数据的转换
- 各种转换
- 各种转换
- 如何进行各种码制数据之间转换
- 如何进行各种码制数据之间转换
- 如何进行各种码制数据之间转换
- abap如何进行各种码制数据之间转换
- 如何进行各种码制数据之间转换
- VC中各种类型的数据之间的转换
- 通信运营商:适合你吗?
- Android和iOS在新版本中助力HTML5
- verilog 实现无符号整数除法运算
- SQL数据类型优化
- 六
- 各种数据转换
- Unable to resolve target 'android-14' 解决办法
- 电子邮件收发原理和实现(POP3, SMTP) [整理]
- ByteArrayOutputStream和ByteArrayInputStream详解
- Android Touch事件的传递机制
- 内核启动yaffs2文件系统出现Partially written xxx block detected
- ubuntu 中如何查看正在运行的进程以及结束进程
- 完美实现溢出文本省略
- eclipse 更改编码utf-8