C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Тип Integer, срочно!!!
Kurt
Отправлено: 25.08.2003, 16:04


Не зарегистрирован







Народ!
Плиз хелп! Срочно!
Мне надо считать из файла переменную типа Int и дальше с ней работать (складывать, выводить на экран...)
Но проблема не в этом.
Дело в том, что переменная в файле (4 байт) хранится в большом порядке! (Т.е. для Sun & Motorola, not PC Intel).
Т.е. последовательность байт наоборот — первый быйт в Intel = последний байт в Motorola.
Мне нужно все сделать как в Intel... или С++Builder может работать с такими данными?
Помогите, срочно надо!
Jean
Отправлено: 25.08.2003, 19:27


Дежурный стрелочник

Группа: Участник
Сообщений: 34



Можно попробовать использовать union. Разбить число на сколько надо байт и сформировать из них то, что требуется... как у тебя — в обратном порядке.
Георгий
Отправлено: 25.08.2003, 21:00


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



Не знаю, чего тут сложного и срочного — делов на 5 минут.
Кстати формат называется BigEndian...
CODE
unsigned char Big[4];//тут лежит это "чужое" число в своём формате
DWORD Normal;//тут будет лежать понятное Intel число
for (Normal=0,int i=0;i<4;i++)Normal|= ((DWORD)Big[i])<<((3-i)*8);

Вернуться в Вопросы программирования в C++Builder