我想将其转换为双字节:
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
7 个解决方案
#1
WORD直接强转DWORD就是在低位
如果要去高位<<8 就可以了
如果要去高位<<8 就可以了
#2
用一个 for 循环,里面:
doub_wd[i] = sing_by[i];
doub_wd[i] = sing_by[i];
#3
传递过来的是字节字符
#4
字节字符是char ?
是char就能直接转
你难道传过来是字符串?
4个字节0x01 还是 2个字节 01?
太不划算了。
是char就能直接转
你难道传过来是字符串?
4个字节0x01 还是 2个字节 01?
太不划算了。
#5
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;
#6
存储的时候再处理:一次数据扫描,插入0x00字节
#7
也就是开两倍的缓存区,初始化为0x00,然后跳插值...
也可以在从客户端接收的时候,就一个一个字节接收,隔位写...
#1
WORD直接强转DWORD就是在低位
如果要去高位<<8 就可以了
如果要去高位<<8 就可以了
#2
用一个 for 循环,里面:
doub_wd[i] = sing_by[i];
doub_wd[i] = sing_by[i];
#3
传递过来的是字节字符
#4
字节字符是char ?
是char就能直接转
你难道传过来是字符串?
4个字节0x01 还是 2个字节 01?
太不划算了。
是char就能直接转
你难道传过来是字符串?
4个字节0x01 还是 2个字节 01?
太不划算了。
#5
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;
#6
存储的时候再处理:一次数据扫描,插入0x00字节
#7
也就是开两倍的缓存区,初始化为0x00,然后跳插值...
也可以在从客户端接收的时候,就一个一个字节接收,隔位写...