如何在类型转换中将值从unsigned short更改为unsigned int

时间:2011-02-03 13:53:19

标签: casting

* pSelectData = 4A,*(pSelectData + 1)= 54

unsigned int value = ((unsigned short )pSelectData);

输出= 21578(十六进制0x544A)。

有人可以解释一下这是怎么回事(价值如何转换)??

提前致谢

2 个答案:

答案 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][  ]