如何将uint32转换为unsigned char数组

时间:2013-06-20 05:16:25

标签: c arrays char unsigned uint32

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

3 个答案:

答案 0 :(得分:1)

你可以利用联盟的力量来实现这个

union value
{
   uint32 number;

   struct bytes
   {
       uint8 bytevalue[4];
   };
};

答案 1 :(得分:0)

UINT32 value;
UINT8 byteval[4];

for(int i = 0 < 4; i++)
    byteval[i] = value >> (i*8);

答案 2 :(得分:0)

使用结构&amp;联合组合。

    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];
    }
}