十六进制高低位转换

union unum{
    unsigned int send;
    unsigned char s[4];
}udata;
NSString *str = @“ff055008”;
//将字符串转换成十六进制数
    int red = (int)strtoul([str UTF8String],0,16);
//下面使用联合体来进行高低位交换
    udata.send = red;
    char us = udata.s[0];
    udata.s[0] = udata.s[3];
    udata.s[3] = us;
    us = udata.s[1];
    udata.s[1] = udata.s[2];
    udata.s[2] = us;
    //将转换完的数字重新赋回去
    int num = udata.send;
联合体中的参数共占一块内存,可以定义不同的数据类型来对内存进行分割达到效果。

你可能感兴趣的:(数据结构)