int 转换成 char数组解决思路

int 转换成 char数组
dpDeviceParams[10].pszPropertyName = "MaxCardNo";
int i = 10000;
unsigned char MaxNo[2];
MaxNo[0] = ((unsigned char *)& i )[0];
MaxNo[1] = ((unsigned char *)& i )[1];
dpDeviceParams[10].pszPropertyValue = MaxNo;

我现在的想法是把int转换了,但是赋值的时候,发现value =16,也就是只取到了MaxNo[0]的值。。。
现在的问题是必须得传一个10000的值,然后输出时也是10000。
int 转换成 char数组,上面的方式应该可以,就是赋值的地方有问题,还有如何将char数组重新转换为int?
int MCardNo;
MCardNo = *((int *)pszPropertyValue);
上面这样可以把char重新转换成int吗?我转换了,但是没有值。
------解决方案--------------------
引用:
补充下:存储10000这个数据的长度是2字节,也就是存储长度限制死了。

你该不会用的TC吧?int 转换成 char数组解决思路
------解决方案--------------------
1)你的转换没有问题,你输入10000的二进制表示是
0000 0000 0000 0000 0010 0111 0001 0000, 所以第0个字节的值是16

2)char转int时,要注意字节对齐的问题,如果是32位机要注意把要转的char型地址4字节对齐.


不明白为什么要这样转来转去?直接定义short数组,然后赋值的时候进行移位操作不行吗?