* pSelectData = 4A,*(pSelectData + 1)= 54
unsigned int value = ((unsigned short )pSelectData);
输出= 21578(十六进制0x544A)。
有人可以解释一下这是怎么回事(价值如何转换)??
提前致谢
答案 0 :(得分:0)
更具体的问题是什么?
根据字节顺序,您可以获得0x4a54或0x544a。这正是你的价值的代表,因为它在记忆中。
答案 1 :(得分:0)
这是你的记忆,其中p = pSelectedData,ps = cast to short,pint = cast to int(假设小端架构):
[ ][4A][54][00][00][ ]
^ ^ ^ ^ ^
p p+1 p+2 p+3 p+4
ps ps+1 ps+2
pint pint+1
您可能想要这样做:
*(unsigned short*)pSelectedData = 0x4a;
*(unsigned short*)(pSelectedData+1) = 0x54;
会给你
[ ][4A][00][54][00][ ]