如何将接收到的单字节数据转换为双字节数据

亚细亚 2012-09-29 03:23:41
客户端发送数据0x01,0x03,0x38,0x0B,0xD7,0x0B,0x42,0x00,0x00,0xF0,0x41,0xD7,0x12
我想将其转换为双字节:
0x00,0x01
0x00,0x03
0x00,0x38
0x00,0x0B
0x00,0xD7
0x00,0x0B
0x00,0x42
0x00,0x00
0x00,0x00
0x00,0x70
0x00,0x41
0x00,0xD7
0x00,0x12并存储起来,请问如何转换?也就是给每个字节添加一个高字节0x00
...全文
574 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ok1234567 2012-10-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
存储的时候再处理:一次数据扫描,插入0x00字节
[/Quote]
也就是开两倍的缓存区,初始化为0x00,然后跳插值...
也可以在从客户端接收的时候,就一个一个字节接收,隔位写...
ok1234567 2012-10-20
  • 打赏
  • 举报
回复
存储的时候再处理:一次数据扫描,插入0x00字节
「已注销」 2012-10-20
  • 打赏
  • 举报
回复
DWORD dwLen;                       // 接收的数据字节数,需要知道大小
BYTE *pArrayByte = dataRecved; // 接收的数据地址
WORD *pArrayWord = new WORD[dwLen]; // 转换后的数据
for (i = 0; i < dwLen; i++) {
pArrayWord[i] = (WORD)(BYTE)pArrayByte[i];
}
// 保存转换后的数据 pArrayWord
delete[] pArrayWord;
傻X 2012-09-29
  • 打赏
  • 举报
回复
字节字符是char ?
是char就能直接转

你难道传过来是字符串?
4个字节0x01 还是 2个字节 01?
太不划算了。
亚细亚 2012-09-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

WORD直接强转DWORD就是在低位

如果要去高位<<8 就可以了
[/Quote]
传递过来的是字节字符
laqhelen 2012-09-29
  • 打赏
  • 举报
回复
用一个 for 循环,里面:
doub_wd[i] = sing_by[i];
傻X 2012-09-29
  • 打赏
  • 举报
回复
WORD直接强转DWORD就是在低位

如果要去高位<<8 就可以了

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧