我有 8 个 uint32 元素,我想将每个 uint32 分解为 4 个 uint8,然后将所有 uint8 彼此并排添加为数组中的无符号字符,我该怎么做?
问问题
5199 次
3 回答
1
UINT32 value;
UINT8 byteval[4];
for(int i = 0 < 4; i++)
byteval[i] = value >> (i*8);
于 2013-06-20T05:23:04.237 回答
1
您可以为此利用联合的力量
union value
{
uint32 number;
struct bytes
{
uint8 bytevalue[4];
};
};
于 2013-06-20T05:27:56.740 回答
0
结合使用结构和联合。
typedef struct
{
uint32 ArrayOf32Bit[8];
}Arrayof32bitVar_t;
typedef union
{
Arrayof32bitVar_t Var8int32;
uint8 Array8char[8*4]; // instead use macro
}tydefUnion_t;
func_add
{
int i
tydefUnion_t a; //
/*Here update variable a.Var8int32.ArrayOf32Bit*/
int addResult = 0;
for(i;i<(8*4);i++)
{
addResult += a.Array8char[i];
}
}
于 2013-06-20T06:24:17.370 回答