Сравнение байтового массива с многомерным массивом
Скажем, у меня есть массив байтов
byte arr[7]={123456};
Как сравнить этот массив, например, со списком других массивов
byte buffers[5][7] = {123456,654321,987654,456789,765432};
если этот метод неправильный, как я могу это объявить?
@Amr Ahmed, 👍-1
Обсуждение1 ответ
▲ 2
byte arr[7]={123456};
устанавливает arr[0] = 64 – что составляет 123456 % 256 – и arr[1-6] остается равным 0
И вам также нужно только 6 (а не 7) значений — поэтому код будет таким:
byte arr[6]={1,2,3,4,5,6}; // вот как инициализировать массив
byte buffers[5][6] = {{1,2,3,4,5,6},{6,5,4,3,2,1},{9,8,7,6,5,4},{4,5,6,7,8,9},{7,6,5,4,3,2}}; // вот как инициализировать 2D-массив
void setup() {
Serial.begin(74880);
delay(100);
// этот код найдет совпадение, значение `i` будет совпавшим индексом
int i;
int j;
for(i = 0; i < 5; i++) {
for(j = 0; j < 6; j ++) {
if(arr[j] != buffers[i][j]) {
break;
}
}
if(j == 6) {
break;
}
}
if (i < 5) {
Serial.print("Found at index ");
Serial.println(i);
}
}
,
@Jaromanda X
@JaromandaX Возможно, вы захотите сделать это для контроля качества Arduino, добавив, как использовать программную память для вектора/массива постоянных значений., @Mikael Patel
не понимаю, что ты имеешь в виду @MikaelPatel, @Jaromanda X
Смотрите также:
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
Как вы думаете, что на самом деле делает
byte arr[7]={123456};
?, @Jaromanda XИтак, как я могу составить список массивов для сравнения?, @Amr Ahmed
каким ты ХОЧЕШЬ видеть
arr
? 1,2,3,4,5,6,0? или 64,0,0,0,0,0,0, @Jaromanda Xя хочу, чтобы это было 1,2,3,4,5,6, @Amr Ahmed
ну, ты делаешь это неправильно, @Jaromanda X
и что вы предлагаете сделать это правильно?, @Amr Ahmed
узнать, как инициализировать массив - см. ответ, @Jaromanda X
Как это вопрос об Arduino? Это скорее вопрос «помогите мне понять основы программирования на C/C++»., @Mikael Patel