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
如何将字节数组转换为arduino led矩阵的uint64_t_Arduino - Fatal编程技术网

如何将字节数组转换为arduino led矩阵的uint64_t

如何将字节数组转换为arduino led矩阵的uint64_t,arduino,Arduino,我在这个网站上看到了这个字节数组到uint64_t的转换,用于绘制字母A 我认为将字节数组转换成uint64_t可以减少代码大小,同时节省arduino IC代码存储空间 字节数组: const byte IMAGES[][8] = { { B00011000, B00100100, B01000010, B01111110, B01000010, B01000010, B01000010, B00000000 }}; const uint64_t IMAGE

我在这个网站上看到了这个字节数组到uint64_t的转换,用于绘制字母A

我认为将字节数组转换成uint64_t可以减少代码大小,同时节省arduino IC代码存储空间

字节数组:

const byte IMAGES[][8] = {
{
  B00011000,
  B00100100,
  B01000010,
  B01111110,
  B01000010,
  B01000010,
  B01000010,
  B00000000
}};
const uint64_t IMAGES[] = {
  0x004242427e422418
};   
uint64\u t数组:

const byte IMAGES[][8] = {
{
  B00011000,
  B00100100,
  B01000010,
  B01111110,
  B01000010,
  B01000010,
  B01000010,
  B00000000
}};
const uint64_t IMAGES[] = {
  0x004242427e422418
};   

如何通过查看led矩阵图像上方的显示字节数组将其转换为uint64\u t,而无需任何工具,如?

如果它是小尾端

uint64_t IMAGE = 0;
for (int i = 0; i < (sizeof(byte) * 8); i++)
{
   IMAGE += ((uint64_t) byteIMAGE[i] & 0xffL) << (8 * i);
}
uint64_t IMAGE = 0;
for (int i = 0; i < (sizeof(byte) * 8); i++)
{
   IMAGE = (IMAGE << 8) + (byteIMAGE[i] & 0xff);
}
uint64\u t IMAGE=0;
对于(int i=0;i<(字节大小)*8;i++)
{

IMAGE+=((uint64_t)byteIMAGE[i]&0xffL)希望这个示例可以帮助您,转换的主要功能是
void显示图像(uint64\u t图像)

在函数中,i是行,j是列,
位读取(x,n)
告诉您位于位置(i,j)的led必须打开或关闭

// ex. for the value 128 on a generic row
for (int j = 0; j < 8; j++) {
    Serial.println( bitRead(128, j));    
}
//通用行上的值128的示例
对于(int j=0;j<8;j++){
Serial.println(位读(128,j));
}

< /p>为什么不首先使用<代码> UTIN 64×T/代码>,剩下的留给编译器?一个好的编译器应该优化掩蔽到单字节写的转换。不要垃圾邮件标签。ARDUNO是不是C,也不是确切的C++。(除非您定义了256个符号常量或宏,否则您没有定义,是吗?)。