Вопрос № 57765: Добрый день, уважаемые эксперты! Подскажите, пожалуйста, как можно произвольную структуру данных преобразовать в бинарный вид. Если можно, дайте какие-нибудь ссылки, чтобы подробнее об этом почитать и разобраться фундаментально. Заранеее спасибо....Вопрос № 57807: Здравствуйте эксперты. Нужно написать программу на языке С. Задание звучит так: В целочисленном массиве после каждых трех отрицательных чисел идущих подряд вставить
0....Вопрос № 57838: Здравствуйте, господа!
На С++ написан следующий код (приложение). Нужно считать с клавиатуры число от 1 до 3 если чтение неверно очистить буфер и попросить ввести снова. Проблема в том, что под gcc 3.4.3 функция fflush() не оказывает никакого воз...
Вопрос № 57.765
Добрый день, уважаемые эксперты! Подскажите, пожалуйста, как можно произвольную структуру данных преобразовать в бинарный вид. Если можно, дайте какие-нибудь ссылки, чтобы подробнее об этом почитать и разобраться фундаментально. Заранеее спасибо.
Отвечает: dentist
Здравствуйте, Говорищев Максим Александрович!
что начит: "преобразовать в бинарный"?
машина не умеет работать нисчем другим кроме как с двоичными даннными. после компиляции в программе уже нет ни имён переменных ни структур ни объединений. структура вида приведённого выше, коллегой ;) будет представлять сабой лиш последовательность из 24 бит.
--------- "Software is like sex, it's better then it's free" (c) Linus Torvalds
Ответ отправил: dentist (статус: 5-ый класс)
Ответ отправлен: 05.10.2006, 09:35 Оценка за ответ: 3
Отвечает: Sergey A. Wedensky
Здравствуйте, Говорищев Максим Александрович!
Я так понимаю, Вам нужно "развернуть" некую структуру в поток данных для передачи (например, по сети), а затем ее "разаернуть".
Можно, например, использовать оффсеты:
1. Структурой можно пользоваться как масссивом или другой структурой (если сгруппировать их типы):
typedef mystruct{
int x;
long y;
};//произвольная структура
typedef union{//Сгруппировать представления
mystruct MY;//Представить в виде структуры
char Bytes[sizeof(mystruct)];//Представить в виде массива байт
anotherstruct DD;//В виду другой структуры...
}XStruct;
И обращаться к ней как к своей структуре:
mystruct buf;
buf.MY.x=5;
или как к массиву:
buf.Bytes[4]=3;
2. Можно сделать упакованные структуры "бинарно упаковав". Например:
typedef BinaryStruct{
int First4Bits:4;//Поле имеет размер 4 бита
int Second2Bits:2;//Поле имеет размер 2 бита
int Third7Bits:7;//Поле имеет размер 7 бита
int Last3Bits:3;//Поле имеет размер 3 бита
}
--------- Открыть глаза навстречу солнцу
Ответ отправил: ADSota (статус: Специалист)
Ответ отправлен: 05.10.2006, 11:30
Вопрос № 57.807
Здравствуйте эксперты. Нужно написать программу на языке С. Задание звучит так: В целочисленном массиве после каждых трех отрицательных чисел идущих подряд вставить 0.
Ответ отправил: Алексеев В.В. (статус: 1-ый класс)
Ответ отправлен: 05.10.2006, 18:33
Вопрос № 57.838
Здравствуйте, господа!
На С++ написан следующий код (приложение). Нужно считать с клавиатуры число от 1 до 3 если чтение неверно очистить буфер и попросить ввести снова. Проблема в том, что под gcc 3.4.3 функция fflush() не оказывает никакого воздействия и при вводе, например, строки программа падает в бесконечный цикл. Под MS Visual C++ 6.0 все ОК.
Вариантов два: либо вы используете только библиотеку stdio либо вы используете только классы типа cin и cout. Во втором случе попробуйте cin.flush() и cout.flush().
--------- Нет правил без исключений, правило без исключения - это исключение из правил.
Ответ отправил: NextStep / www2 (статус: Студент)
Ответ отправлен: 06.10.2006, 06:39 Оценка за ответ: 5 Комментарий оценки: Благодарю!