Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Модификация представления данных 
:(
    Опции темы
tenebris
Дата 11.9.2008, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 20.1.2008

Репутация: нет
Всего: нет



Есть переменная равная = 78 56 34 12
Как её преобразовать в другой формат на Си в 12 34 56 78
Не знаю многих функции на Си. Сдвиг не до конца помогает. Посоветуйте плиз.
PM MAIL   Вверх
mes
Дата 11.9.2008, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



то есть надо 4 байта "перевернуть" ?

Код

int32 reverse (int32 i)
{
   return (( i & 0xFF ) <<3 ) |  (( i & 0xFF00 ) <<1 ) |  (( i & 0xFF0000 ) >>1 ) |  (( i & 0xFF000000 ) >> 3 );
};


практически то же самое
Код

int32 reverse (int32 i)
{
   return ((i >> 3) & 0xFF) | ((i >>1) & 0xFF00)  | ((i << 3) & 0xFF0000) | ((i << 1) & 0xFF000000);
};


или

Код

union reverse_helper
{
  int 32 i;
  unsigned char c[4];
};
int32 reverse (int32 i)
{
    reverse_helper h; h.i =i;
 
    return (h[0]<<3) | (h[1]<<2) | (h[2]<<1) | h[3]; 
};



Это сообщение отредактировал(а) mes - 11.9.2008, 15:38


--------------------
PM MAIL WWW   Вверх
tenebris
Дата 11.9.2008, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 20.1.2008

Репутация: нет
Всего: нет



Да забыл сказать что там всё в батах и в хексе

Добавлено через 6 минут и 46 секунд
А какие есть функции выделения младшей части или типа того?
PM MAIL   Вверх
mes
Дата 11.9.2008, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(tenebris @  11.9.2008,  15:42 Найти цитируемый пост)
А какие есть функции выделения младшей части или типа того? 


i &= 0xFF; // младший байт
i &=0xFFFF; // младшее слово
i &=0xFF00; // старший байт слова
i &=0xFFFF0000; // старший слово  двойного слова
остальное по аналогии








--------------------
PM MAIL WWW   Вверх
tenebris
Дата 11.9.2008, 16:13 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 20.1.2008

Репутация: нет
Всего: нет



Не ну в Паскале есть lo(x),shl,shr Я вот про что
PM MAIL   Вверх
mes
Дата 11.9.2008, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(tenebris @  11.9.2008,  16:13 Найти цитируемый пост)
Не ну в Паскале есть lo(x),shl,shr Я вот про что 

ну а чем не подходят выше упомянутые   >>, <<, &  ?


--------------------
PM MAIL WWW   Вверх
tenebris
Дата 11.9.2008, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 20.1.2008

Репутация: нет
Всего: нет



Не всё подходит конешн  smile  Просто спрашиваю функции какие есть. Надо же полностью на Си переходить. мне
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1047 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.