易语言到字节集c,易语言的到字节集在C++中应该如何实现

贴个代码吧   网上找到的方法,此方法非原创

inline const PBYTE ToBit(int in_value, OUT UINT& uSize)

{

//str把模板in_value值保存转换成string类型的字符串

//str1保存临时文本用于交换值

string str, str1;

//判断类型是否为整数

if (typeid(in_value) == typeid(int))

{

//保存转换16进制的文本

char hex[10];

//转换成16进制并强制显示8个字符长度

sprintf_s(hex, 10, "%.8x", in_value);

//转换成string字符串类型

str = hex;

//一个整数4个字节,所以申请一个str字符串大小(8)/2 的BYTE指针

//用作返回值

BYTE* pStr = new BYTE[str.size() / 2];

//数据容器

int* i = new int[str.size() / 2];

//读取2CHAR个为单位的字符串并转换成10进制

for (UINT ii = 0; ii < str.size() / 2; ii++)

{

//接收转换成10进制的值

int iii;

//读取子字符串

str1 = str.substr(ii * 2, 2); //读取2个字符

//把str1的值转换成10进制保存给iii变量

sscanf_s(str1.data(), "%x", &iii);//转换成10进制

//i数组把转换的10进制给临时保存其数值

i[ii] = iii;

}

//把的到的数值以内存的形式倒序保存到数组中

for (UINT ii = 0; ii < str.size() / 2; ii++)

{

//[str.size() / 2 - 1 - ii] 等于取的数组最后一个索引

//并且把值给变量iii保存

int iii = i[str.size() / 2 - 1 - ii];//倒转顺序

//把iii的值赋值给返回的pStr BYTE数组[ii]的值

pStr[ii] = iii;

//获取BYTE pStr[]的大小

uSize = uSize + 1;

}

//删除申请的堆栈地址防止内存溢出

delete[]i;

return pStr;

}

//判断类型是否为Ascii字符串

if (typeid(in_value) == typeid(const char*))

{

//文本到字节集

//把模板参数in_value转换成stirng字符串

str = in_value;

//申请一个str字符串大小的BYTE指针

//用作返回值

BYTE* pStr = new BYTE[str.size()];

//循环复制给pStr

for (UINT i = 0; i < str.size(); i++)

{

//把字符转换成无符号CHAR

pStr[i] = (BYTE)str[i];//转换成无符号字符不然出负号

//获取BYTE pStr[]的大小

uSize = uSize + 1;

}

return pStr;

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值