ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

Репутация: 105
Отправить сообщение для Sonatic с помощью ICQ
Question Побитовое чтение бинарника

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

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

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

Репутация: 69
Отправить сообщение для RedFern.89 с помощью ICQ
По умолчанию

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

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

Репутация: 52
Отправить сообщение для RaX с помощью ICQ
По умолчанию

можно сделать массив констант чисел степени двойки (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
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

а кто тебе не дает читать по 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 E-Mail 34 14.06.2009 04:01



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


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




ANTICHAT.XYZ