Как использовать uint32 в массиве без знака
У меня есть 8 элементов uint32, и я хочу разбить каждый uint32 на 4 uint8, а затем добавить все uint8 рядом друг с другом как неподписанные символы в массиве, как я могу это сделать?
3 ответа
Решение
Вы можете использовать силу союза для этого
union value
{
uint32 number;
struct bytes
{
uint8 bytevalue[4];
};
};
UINT32 value;
UINT8 byteval[4];
for(int i = 0 < 4; i++)
byteval[i] = value >> (i*8);
Используйте Структура и Союз в комбинации.
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];
}
}