|
short long=24бит Как? |
|
|
|
Mar 1 2017, 12:06
|
Профессионал
    
Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364

|
Цитата(k155la3 @ Mar 1 2017, 13:39)  Если без знака то
char long24_mem_area[4]; // 24-битное число расположено в [1][2][3] long24_mem_area[0] = 0; unsigned long MyLong32 = * (long *) &long24_mem_area[0]; (только выравнивание должно быть правильным) Не, как работать с 24 битными числами я в курсе. Но мне хотелось-бы в структуре в памяти разместить рядом четыре 24-битных числа без дырок в памяти. Там еще параллельно на эту структуру накладывается в union массив и парочка других структур. ЗЫ. Ну по факту мне там нужны 12-битные переменные, но если в структуре можно будет иметь 24-битный контейнер, разделить его на 12 бит без дырок в памяти проблем особых не составит.
|
|
|
|
|
Mar 1 2017, 12:51
|
Профессионал
    
Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848

|
Цитата(ArtemKAD @ Mar 1 2017, 16:06)  . . . . Ну по факту мне там нужны 12-битные переменные, но если в структуре можно будет иметь 24-битный контейнер, разделить его на 12 бит без дырок в памяти проблем особых не составит. Единственное, из-за чего стоит с этим заморачиваться - битовые поля итп, экономия одного байта - жесткое (жестокое) ограничение по RAM-FLASH. или огромное кол-во этих данных. Нескромный вопрос. Какая цель такой упаковки ?
|
|
|
|
|
Mar 1 2017, 14:24
|
Профессионал
    
Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848

|
Цитата(ArtemKAD @ Mar 1 2017, 17:43)  Пока поля были кратны 8-ке или укладывались по границе байта/слова/двойного_слова все было более-менее, но тут захотелось "побаловаться" с помехоустойчивым кодированием.... Понятно, цель - работать с числами в raw-принятом массиве, без копирования / присваивания с приведением типов. Если задача повысить за счет этого скорость обработки - то надо писать на ASM оптимизированные для этого ф-ии. IMHO
|
|
|
|
|
Mar 1 2017, 15:26
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(ArtemKAD @ Mar 1 2017, 17:10)  Попробовал, но почему-то обругалось: Error[Pe077]: this declaration has no storage class or type specifier На что? Цитата(scifi @ Mar 1 2017, 17:22)  Код struct u24 someArray[4]; В режиме C++ слово struct можно не писать. Хммм... сто лет уже не создавал *.c файлов, только *.cpp... Вроде не раздел для начинающих - думал пишущие сюда должны знать основы....
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|