|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.02.2011, 19:30 | #1 |
Форумчанин
Регистрация: 21.04.2010
Сообщений: 144
|
Работа с битовыми полями
Доброго времени суток! Я чего-то сольно затупил, и в нете не могу найти инфу. Собственно вопрос 1-й: как с помощью поля бит найти остаток от деления данного числа, к примеру на 2? И каким образом подгрузить из файла инфу в поле бит? (скажем загрузить из произвольного файла 1 байт?)
Я пробовал примерно так Код:
|
18.02.2011, 20:56 | #2 | |
Форумчанин
Регистрация: 31.01.2011
Сообщений: 160
|
Farrel, размер всегда измеряется в байтах, поэтому
f.read((char*)&field,1); Цитата:
Код:
|
|
18.02.2011, 21:57 | #3 |
Форумчанин
Регистрация: 21.04.2010
Сообщений: 144
|
|
18.02.2011, 22:17 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
начнем с того вы не прочтете с файла один бит, поэтому считывать надо байтами(например всю структуру с вашими полями)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
18.02.2011, 22:30 | #5 |
Форумчанин
Регистрация: 21.04.2010
Сообщений: 144
|
ой, ошибся. В предыдущем посте я имел ввиду байт. Т.е.
Код:
Код:
Код:
Последний раз редактировалось Stilet; 19.02.2011 в 08:36. |
19.02.2011, 01:33 | #6 |
Форумчанин
Регистрация: 12.01.2011
Сообщений: 186
|
Код:
Lingua c++ non penis caninus est.
|
19.02.2011, 10:56 | #7 | |
Форумчанин
Регистрация: 21.04.2010
Сообщений: 144
|
Цитата:
PS странно, но вижла не ругалась на попытки записать в private член класса инфу извне. лан, поставим вопрос по-другому Код:
|
|
19.02.2011, 21:24 | #8 |
Форумчанин
Регистрация: 12.01.2011
Сообщений: 186
|
Что надо исправить:
Код:
Lingua c++ non penis caninus est.
|
19.02.2011, 22:43 | #9 |
Форумчанин
Регистрация: 21.04.2010
Сообщений: 144
|
Да, действительно, кажется пора поспать пару часов . Так оно действительно пашет.
И последний вопрос: как можно почитать файл в битовые структуры(независимо от его типа). Когда переписанный код твой я попробовал применить таким образом, в поле бит не записалось вообще ничего(trunc и запись в файл я естественно закоментил, файл я взял mp3). Я конечно понимаю, что в идеале необходимо знать структуру файла, но я себе такую роскошь позволить не могу, мне необходимо знать только как выглядит инфа в двоичном виде. PS кстати файлик djvu почитать я всётаки смог, возможно таким образом читать можно толь пиратские форматы а вот лицензированные типа mp3 либо нельзя, либо с большими проблемами. И вот ещё что заметил, в djvu файле при чтении в написанной Dayman объединении при чтении часто меняется value причём значения она принимает самые разные, а вот данные в поле бит меняются гораздо реже, что подозрительно. вот слегка поправленный мной код Код:
Кажется дело во 2-м параметре ff.read sizeof(f) возвращает почему-то 4 хотя по идее в поле бит мы пишем только 1 байт. Я попытался изменить количесво бит в поле, но sizeof всё так же возвращает 4. Кто нить может объяснить сей факт? Последний раз редактировалось Farrel; 19.02.2011 в 23:42. |
19.02.2011, 23:50 | #10 |
Форумчанин
Регистрация: 12.01.2011
Сообщений: 186
|
Поправлю свой пример (поэтому и возвращал sizeof 4 байта)
Вместо Код:
Код:
Lingua c++ non penis caninus est.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с битовыми операциями | sid | Помощь студентам | 4 | 05.12.2010 23:01 |
Interbase. Работа с BLOB-полями | Sewell | БД в Delphi | 5 | 25.11.2010 08:46 |
параметрическое открытие OpenForm, работа с полями таблицы через .Fields | Познающий | Microsoft Office Access | 10 | 16.06.2010 01:50 |
Программная работа с полями (формула) | NomadV | Microsoft Office Word | 7 | 08.04.2010 15:21 |
БД Access и операции с полями | WishNight | БД в Delphi | 3 | 05.04.2010 13:00 |