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); | |
|