мне надо хранить в микроконтроллере AtTiny2313 массив 3-х мерный.
подскажите, как мне его хранить, компилятор ругается.
я делаю это так
extern int mas[5][5][5]
А по-русски? Причём здесь десятичная система и какое отношение к int имеет значение 5? В памяти всё в любом случае всё хранится в двоичном виде.PacMan писал(а):переводить int в десятичную систему.
То есть в одном int можно хранить(в моем случае удобно) 5
char * -- это указатель на символ, и ничего более. Он никак не может поддерживать "до 255" или до чего ещё угодно символов -- он просто содержит некий адрес памяти, по которому лежит какой-нибудь символ. А ограничением в этой задаче, похоже, является объём ОЗУ контроллера, а значит, надо думать, как хранить данные компактнее.PacMan писал(а):На сколько я знаю char * поддерживает до 255 символов.
Да в чём проблема? Если нужно хранить трёхмерный массив двоичных одноразрядных чисел и чётко фиксированы элементы массива, объявите двухмерный массив char mass[5][5], в char'е 8 битов - используйте первые 5 посредством маски. Перерасхода памяти почти не будет. Если третья размерность больше 8, используйте int и т. д. Вот и всё.PacMan писал(а):мне надо хранить в микроконтроллере AtTiny2313 массив 3-х мерный.
подскажите, как мне его хранить
Маска реализуется операцией поразрядного И.PacMan писал(а):что значит посредством маски?)))
Я знаю только единственный способ перевода из одной системы счисления в другую. Для 2->10 пусть имеется число b01101. Нужно подсчитать сумму 1*2^0+0*2^1+1*2^2+1*2^3+0*2^4 в десятичной системе счисления. Аналогично можно производить расчёт в обратном направлении (10->2), вот только считать в двоичной системе счисления мы пока не научились.PacMan писал(а):спасибо за помощь.
у меня еще один вопрос. как теперь из 2 -> 10 систему перевести
PacMan писал(а):я понимаю это должно быть так
mass[j]=n;
где n запись ( пусть 11111 ) в 10 - й форме
Забыли в восмеричной__Alexander писал(а):Не совсем понятно что есть перевод из 2 в 10 в Си.
Вот например:
x = 0x02; // это число 2 в шестнадцатеричной системе
x = 0b00000010 ; // это число 2 в двоичной системе
x = 2; // это число 2 десятичной системе
в чем проблема то?
------------------------------------
Да и 125 не только в falsh, но и в ОЗУ влезетШурики писал(а):массив битов 5х5х5 элементов. если считать 5 битовых элементов влазят в 1 байт, получаем 5х5х1 байт. На итого 25 байт - все лезет.