Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 将8字节uint8_t数组转换为4字节数组_Arrays_Arduino_Hex - Fatal编程技术网

Arrays 将8字节uint8_t数组转换为4字节数组

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 {

我正在使用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
  {
     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};