HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Побитовое чтение бинарника
  #1  
Старый 25.01.2010, 14:49
Sonatic
Познающий
Регистрация: 25.10.2008
Сообщений: 46
С нами: 9233292

Репутация: 105
Question Побитовое чтение бинарника

Стоит задача:
Дан начальный двоичный файл любого формата (mp3,avi, и т.д.)

Требуется считать его содержимое и представить его в виде битовой последовательности, язык реализации Borland C++ 3.1
Далее требуется произвести скремблирование и записать результирующий файл.
Вопрос: Каким образом можно реализовать побитовое чтение файла?
 
Ответить с цитированием

  #2  
Старый 25.01.2010, 15:19
RedFern.89
Постоянный
Регистрация: 20.01.2010
Сообщений: 338
С нами: 8582863

Репутация: 69
По умолчанию

1 бит - это 1/8 часть байта, т.е.
Код:
 
const Bit = 1024 div 8;
затем цикл от 0 до общего размера. и там как то так. в общем развивайте идею)
 
Ответить с цитированием

  #3  
Старый 25.01.2010, 16:09
RaX
Познающий
Регистрация: 07.06.2008
Сообщений: 48
С нами: 9434892

Репутация: 52
По умолчанию

можно сделать массив констант чисел степени двойки (1,2,4...128) и каждое число (точнее аски-код символа) проверять.

1.Берем текущую константу (сначала 128)
2.Если константа меньше числа, то текущий бит (1-ый) равен 0, иначе вычитаем из числа константу и текущий бит равен 1.
3.Возвращаемся на шаг 1 для следующего бита (2 бит и константа 64)


и т.д. пока мы не проверим все биты.

также во многих языках можно сдлеать так:
Код:
if x and 128 > 0 then
begin
 //1-ый бит = 1
end
else
begin
 //1-ый бит = 0
end;
 
Ответить с цитированием

  #4  
Старый 25.01.2010, 16:34
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами: 10097606

Репутация: 3349


По умолчанию

а кто тебе не дает читать по 1 байту и сразу разбивать на биты?
Допустим можеш к примеру описать структуру
typedef struct _BITS
{
BYTE b0:1;
BYTE b1:1;
BYTE b2:1;
BYTE b3:1;
BYTE b4:1;
BYTE b5:1;
BYTE b6:1;
BYTE b7:1;
} BITS, *PBITS;

И теперь просто создай переменную
BITS b;
и считывай сразу в ней 1 байт. И у тебя есть сразу доступ к битам.
b.b1 b.b3 итд итп
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение чужых SMS, остались партнёрские программы? trolex Партнерки 30 24.12.2009 00:21
Чтение инструкций – не мужское дело?!? ixtor1 Болталка 8 30.11.2009 21:14
Фейки dgonik777 Уязвимости Mail-сервис 34 14.06.2009 04:01



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...