首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2013-01-28 
如何将一个2字节的unsigned int 劈成两个1字节?从别处得到一个2字节的unsigned int型数据, 需将它分别存进

如何将一个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],
);

热点排行