数组char a[4] 保存了一个数据,怎么转换为unsigned int呢 ? [待解决问题] 浏览: 701次

数组char a[4] 保存了一个数据,怎么转换为unsigned int呢 ?
[待解决问题] 浏览: 701次

[待解决问题] 浏览: 701次

注意char并不表示字符的

a[0]=0;

a[1]=0;

a[2]=3;

a[3]=0;

那么我要的unsigned int b应该等于:

b= 0x00000300 = 768

这个有现成的函数么?(C++)

上面的回答基本正确,从你的描述看,你使用的是big-endian(网络字节序),所以按intel系列cpu来说,可以这样赋值。

#include <Winsock2.h>

char a[4] = { 0,0,3,0 };

unsigned int b = ntohl ( *( (unsigned int*) a) );

或者

unsigned int b = MAKELPARAM(MAKEWORD(a[3],a[2]), MAKEWORD(a[1], a[0]));

 
回复 | hoodlum1980 | 园豆:451 (菜鸟二级) | 2012-04-30 19:36 |