mfc中处理数据有关问题,char*存储一个100字节数据包,前四个字节存储一个long型变量,代表这个数据包的长度,分析之后完成数据的处理
mfc中处理数据问题,char*存储一个100字节数据包,前四个字节存储一个long型变量,代表这个数据包的长度,分析之后完成数据的处理
网络通信方面的,接收数据包,然后分析处理,通信过程差不多了,现在就是处理这个数据包的问题.
我现在想将一个long类型的变量存入到char*类型的字符串里面,或者是char[]也行.
我声明了一个联合体
union Data{
long lVal;
char* sBuffer;
}data;
然后再函数赋值
data.lVal = 100;
然后我输出 sBuffer[0],sBuffer[1],sBuffer[2],sBuffer[3]就都是空值,这是为什么呢?急求!!!
------解决方案--------------------
比如long data = 10,内存中:
Hex:
0A 00 00 00
Bin:
00001010 00000000 00000000 00000000
低地址 +1 +2 +3 高地址
就是 小端 (little endian) 模式, 低位 放 低地址。
------解决方案--------------------
先看一下大小端模式吧
http://baike.baidu.com/view/1922338.htm
网络通信方面的,接收数据包,然后分析处理,通信过程差不多了,现在就是处理这个数据包的问题.
我现在想将一个long类型的变量存入到char*类型的字符串里面,或者是char[]也行.
我声明了一个联合体
union Data{
long lVal;
char* sBuffer;
}data;
然后再函数赋值
data.lVal = 100;
然后我输出 sBuffer[0],sBuffer[1],sBuffer[2],sBuffer[3]就都是空值,这是为什么呢?急求!!!
VC
MFC
char*
long
数据类型.
------解决方案--------------------
比如long data = 10,内存中:
Hex:
0A 00 00 00
Bin:
00001010 00000000 00000000 00000000
低地址 +1 +2 +3 高地址
就是 小端 (little endian) 模式, 低位 放 低地址。
------解决方案--------------------
先看一下大小端模式吧
http://baike.baidu.com/view/1922338.htm