|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Sergey Khvatov 2:5020/175.2 02 Aug 2006 11:08:27 To : Valery Ivanov Subject : битовые операции -------------------------------------------------------------------------------- Tue Aug 01 2006 20:32, Valery Ivanov wrote to All: VI> Пpивет, All ! VI> 1) как "перевернуть" байт ? VI> те изначально биты расположены 0,1,..7 VI> нужно получить байт с битами 7,6,..0 VI> интересует алгоритм (код на c++) Проще всего - из таблицы, индексируемой исходным значением. VI> 2) какая на спарках (sparc) структура памяти по отношению к intel VI> если рассматривать структуры с битовыми полями Это - на совести не архитектуры, а компилятора. Основные отличия архитектуры sparc от intel - big endian и запрет невыровненного обращения к памяти (но ты не эти грабли похоже еще не наступил :-) VI> 3) тот же вопрос если рассматривать сложные структуры где чередуются VI> обычные данные (double,int) c битовыми полями VI> в частности как получить адрес битового поля ? Как получится. Для явного управления в разных версиях компилятора существуют разные манипуляторы: #pragma pack(...), __attribude__((packed)),.. Hо вообще если ты передаешь двоичные данные между разными платформами - проблем у тебя будет много. Особенно если использовать битовые поля --- ifmail v.2.15dev5 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/33003413daeb.html, оценка из 5, голосов 10
|