怎么将一个2字节的unsigned int 劈成两个1字节

如何将一个2字节的unsigned int 劈成两个1字节?
从别处得到一个2字节的unsigned int型数据, 需将它分别存进两个 char变量.
有什么直接的方法吗?

------解决方案--------------------

unsigned int a=1000;
char b[2];
*((unsigned int*)b)=a;

或更简单:

unsigned int a=1000;
char b[2];
b[0]=a%256;
b[1]=a/256;




你确定你机器上的unsigned int是两个字节?

------解决方案--------------------

unsigned int a=1000;
char b[2];
b[0] = a;
b[1] = a>>8;
------解决方案--------------------
	
union uc
{
unsigned int a;
char b[2];
};

uint放入a,取b
------解决方案--------------------
unsigned short int si=0x12AB;
char *p0,*p1,c0,c1;
char cc[2];
p0=(char *)&si;
p1=((char *)&si)+1;
c0=((char *)&si)[0];
c1=((char *)&si)[1];
memcpy((void *)cc,&si,2);
printf("%02X %02X %02X %02X %02X %02X\n",
 (unsigned char)*p0,
 (unsigned char)*p1,
 (unsigned char)c0,
 (unsigned char)c1,
 (unsigned char)cc[0],
 (unsigned char)cc[1],
);