Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

как загрузить в масив последовательность нулей и единиц

8.0K
18 декабря 2004 года
noxa13
9 / / 18.12.2004
у меня проблема, надо открыть файл любого розширения, и создать масив 0 и 1 из которых состоит файл ?
247
18 декабря 2004 года
wanja
1.2K / / 03.02.2003
Цитата:
Originally posted by noxa13
у меня проблема, надо открыть файл любого розширения, и создать масив 0 и 1 из которых состоит файл ?


Ну как, считываешь по байту и делаешь восемь раз
mas=b&0x80;
i++;
b=b<<1;

310
18 декабря 2004 года
fellow
853 / / 17.03.2003
Цитата:
Originally posted by wanja

Ну как, считываешь по байту и делаешь восемь раз
mas=b&0x80;
i++;
b=b<<1;


Очень смешно :)

247
18 декабря 2004 года
wanja
1.2K / / 03.02.2003
Цитата:
Originally posted by fellow

Очень смешно :)


Ну, раз тебе смешно, придумывай сам.:devil:

368
18 декабря 2004 года
rostyslav
629 / / 13.07.2004
Цитата:
Originally posted by fellow

Очень смешно :)


А почему смешно? Если не брать во внимание, что в коде 2 ошибки, то все нормально...

301
19 декабря 2004 года
lord Kelvin
897 / / 08.11.2004
Внесу свой скромный лепет.=)
 
Код:
char b=128+64+4+2+1;
int mas[64];
int *ptr=mas;
for(int i=0;i<8;i++)
{
 *ptr++=b&1;
 b>>=1;
}
247
19 декабря 2004 года
wanja
1.2K / / 03.02.2003
Цитата:
Originally posted by lord Kelvin
Внесу свой скромный лепет.=)
 
Код:
char b=128+64+4+2+1;
int mas[64];
int *ptr=mas;
for(int i=0;i<8;i++)
{
 *ptr++=b&1;
 b>>=1;
}


так они запихнутся в обратном порядке.

8.0K
19 декабря 2004 года
noxa13
9 / / 18.12.2004
Цитата:
Originally posted by lord Kelvin
Внесу свой скромный лепет.=)
 
Код:
char b=128+64+4+2+1;
int mas[64];
int *ptr=mas;
for(int i=0;i<8;i++)
{
 *ptr++=b&1;
 b>>=1;
}


а тут не будет ппроблем з большими файлами?

247
19 декабря 2004 года
wanja
1.2K / / 03.02.2003
Цитата:
Originally posted by noxa13

а тут не будет ппроблем з большими файлами?


В смысле, влезут ли они в массив? Или тормоза при считывании? Если тормоза, читай поблочно и побайтово перекрючивай уже блоки.

8.0K
19 декабря 2004 года
noxa13
9 / / 18.12.2004
Цитата:
Originally posted by wanja

В смысле, влезут ли они в массив? Или тормоза при считывании? Если тормоза, читай поблочно и побайтово перекрючивай уже блоки.



спасибо, ну и ещё вопрос, как мне с єтого масива обратно с него создать файл. Например закачал я в масив последоватеоьнность битов з бат файла, чёто там покопался и как с него обратно замутить бат файл? (естественно последовательнность не меняется)

247
19 декабря 2004 года
wanja
1.2K / / 03.02.2003
Цитата:
Originally posted by noxa13


спасибо, ну и ещё вопрос, как мне с єтого масива обратно с него создать файл. Например закачал я в масив последоватеоьнность битов з бат файла, чёто там покопался и как с него обратно замутить бат файл? (естественно последовательнность не меняется)


b:=0;
for (j=1; j<=8;j++)
{
if (mas)
b=b|1;
else
b=b&0xfe;
b=b<<1;
i++;
}
fil<<b;
адын байт

9.3K
24 декабря 2004 года
lai
4 / / 23.12.2004
А можно еще и так :)
 
Код:
char b=128+64+4+2+1;
 int mas[64];
 int *ptr=mas;
 int i=256;
 while(i>>=1) *ptr++=bool(b&i);
4.1K
24 декабря 2004 года
_voron
19 / / 07.12.2003
Цитата:
Originally posted by noxa13


спасибо, ну и ещё вопрос, как мне с єтого масива обратно с него создать файл. Например закачал я в масив последоватеоьнность битов з бат файла, чёто там покопался и как с него обратно замутить бат файл? (естественно последовательнность не меняется)


А не проще ли создать такой массив:

Код:
typedef union u_byte{
  struct st_byte{
    char b0 : 1;
    char b1 : 1;
    . . .
    char b7 : 1;
  }bits;
  char byte;
}BYTE;

BYTE *m_data = malloc(size);
. . .

Работать с битами будет удобно, сохранять/загружать из файла проще и места в памяти в 8 раз меньше потребуется.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог