Вывод символа из массива

fredhack
Offline
Зарегистрирован: 15.12.2017

Доброго времени суток уважаемые пользователи форума! Нужна ваша помощь

Есть многомерный массив из кучи символов вот пример одного символа

byte BIG[33][8][5] = {
// Рисуем символ А русская
  {0b01110,
  0b10001,
  0b10001,
  0b10001,
  0b11111,
  0b10001,
  0b10001,
  0b10001},

 

 
при попытке вывести значение массива таким способом
 
    Serial.print("Элемент ");
    Serial.print(": ");
    Serial.println(BIG[1][8][5]);

 

получаю результат 

Элемент : 17

Вопрос: что за значение 17 и откуда оно берется? как мне вывести элемент массива?

arduino328
Offline
Зарегистрирован: 01.09.2016

fredhack пишет:

Вопрос: что за значение 17 и откуда оно берется?

0b10001 = 17

Зачем в массиве нужно [5]?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

arduino328 пишет:

Зачем в массиве нужно [5]?

В смысле, в объявлении массива? Так это чтобы подчеркнуть, что в инициализации ровно 8 значений!

fredhack
Offline
Зарегистрирован: 15.12.2017

arduino328 пишет:

0b10001 = 17

Зачем в массиве нужно [5]?

Если честно я сам еще неочень разобрался просто нашел пример

http://forum.amperka.ru/threads/%D0%9C%D0%B0%D1%81%D1%81%D0%B8%D0%B2-%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%BE%D0%B2.5312/

там у него был создан массив 4 8 8

в массиве было 4 кубика 8*8 символов вот я и подумал что нужно хотя обычное создание символа работало с 1 значением

byte simvol_a[8]

А не подскажете как мне выдернуть все содержимое одного элемента? ну тоесть в данном случае 8 в высоту строк и 5 в ширину столбцов (символ для LCD дисплея 1602)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

fredhack пишет:

byte BIG[33][8][5] = {
..........
Serial.println(BIG[1][8][5]);

В массиве, описанном как [33][8][5], нет и не может быть элемента [1][8][5].

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

fredhack пишет:

и 5 в ширину столбцов (символ для LCD дисплея 1602)

Так 5 относится к количеству нулей и единиц в константах, начинающихся с 0b?

arduino328 - Вы попали!!! :))))

fredhack
Offline
Зарегистрирован: 15.12.2017

ЕвгенийП пишет:

В массиве, описанном как [33][8][5], нет и не может быть элемента [1][8][5].

То есть? а как мне в массив поместить например кирилический алфавит?  33 задумывалось как кол-во элементов массива, а 1 должна была быть одним из элементов массива

fredhack
Offline
Зарегистрирован: 15.12.2017

ЕвгенийП пишет:

Так 5 относится к количеству нулей и единиц в константах, начинающихся с 0b?

arduino328 - Вы попали!!! :))))

Хм... типо того только сейчас дошло что там 7 символов вместе с 0b

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

fredhack пишет:

ЕвгенийП пишет:

В массиве, описанном как [33][8][5], нет и не может быть элемента [1][8][5].

То есть? а как мне в массив поместить например кирилический алфавит?  33 задумывалось как кол-во элементов массива, а 1 должна была быть одним из элементов массива

Что значит "то есть". С 1 первым индексом-то как раз всё нормально. А вот с остальными двумя. Если при объявлении написано [8], то элементы могут быть только от [0] до [7], а у Вас что написано? То же самое, если при объявлении написано [5], то элементы могут быть только от [0] до [4].

Добрый совет, возьмите и прочитайте от начала до конца какую-нибудь книжку по языку программирования. Пока Вы этого не сделаете, Вы будете мучаться с каждой запятой, а также будете постоянным объектом насмешек на любом форуме, включая и этот. Например, будь у меня другое настроение, я бы долго хихикал и издевался над фразой:

fredhack пишет:

Хм... типо того только сейчас дошло что там 7 символов вместе с 0b

arduino328
Offline
Зарегистрирован: 01.09.2016

fredhack пишет:

ЕвгенийП пишет:

Так 5 относится к количеству нулей и единиц в константах, начинающихся с 0b?

arduino328 - Вы попали!!! :))))

Хм... типо того только сейчас дошло что там 7 символов вместе с 0b

Там 1 байт, то есть 1 символ!