-1

我有 8 个 uint32 元素,我想将每个 uint32 分解为 4 个 uint8,然后将所有 uint8 彼此并排添加为数组中的无符号字符,我该怎么做?

4

3 回答 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 回答