C#:
pData[2 * i] = (Byte)((sData[i] & 0x000000FF) % 256);
pData[2 * i + 1] = (Byte)((sData[i] & 0x0000FF00) / 256);
VC:
pChar[2*intIdx] = (BYTE)((int)strData[intIdx] & 0x000000FF) % 256;
pChar[2*intIdx+1] = (BYTE)((int)strData[intIdx] & 0x0000FF00) / 256;
pData[2 * i] = (Byte)((sData[i] & 0x000000FF) % 256);
pData[2 * i + 1] = (Byte)((sData[i] & 0x0000FF00) / 256);
VC:
pChar[2*intIdx] = (BYTE)((int)strData[intIdx] & 0x000000FF) % 256;
pChar[2*intIdx+1] = (BYTE)((int)strData[intIdx] & 0x0000FF00) / 256;
将中文转换为二进制进行传输的时候,一个中文转化为2个BYTE,分别取低8位和高8位。
低8位没有问题。但是高8位用vc的代码执行出来是错的,都是0
pChar[2*intIdx+1] = (BYTE)(((int)strData[intIdx] & 0x0000FF00) / 256)谢谢各位!结贴