Arrays 将8字节uint8_t数组转换为4字节数组
我正在使用Arduino,我想将XBee MAC(上下字节)保存在uint8_t数组中 现在我读取字节没有问题,但我使用8个字节将它们保存在uint8_t*数组中。 我想把它们保存在一个4字节的数组中 例如,上限字节为:0013A200。不,它使用:{0,0,1,3,A,2,0,0},诸如此类 我想这样保存它们:{0x00,0x13,0xA2,0x00}Arrays 将8字节uint8_t数组转换为4字节数组,arrays,arduino,hex,Arrays,Arduino,Hex,我正在使用Arduino,我想将XBee MAC(上下字节)保存在uint8_t数组中 现在我读取字节没有问题,但我使用8个字节将它们保存在uint8_t*数组中。 我想把它们保存在一个4字节的数组中 例如,上限字节为:0013A200。不,它使用:{0,0,1,3,A,2,0,0},诸如此类 我想这样保存它们:{0x00,0x13,0xA2,0x00} 可能吗?我还没有找到一种方法来做这件事。最简单的方法是: union { uint32_t dword; struct {
可能吗?我还没有找到一种方法来做这件事。最简单的方法是:
union {
uint32_t dword;
struct
{
uint8_t b0 : 4;
uint8_t b1 : 4;
uint8_t b2 : 4;
uint8_t b3 : 4;
uint8_t b4 : 4;
uint8_t b5 : 4;
uint8_t b6 : 4;
uint8_t b7 : 4;
} b;
// uint8_t nibble[] : 4; // can't make an array!
} XbeeMAC;
输出
XbeeMAC.dword=76543210
当您不能创建一个半字节数组时,它们将被键入并存储为单个uint8\t。我将这样做:
uint8_t XbeeMAC[] = {0x00, 0x13, 0xA2, 0x00};
uint8_t XbeeMAC[] = {0x00, 0x13, 0xA2, 0x00};