как загрузить в масив последовательность нулей и единиц
у меня проблема, надо открыть файл любого розширения, и создать масив 0 и 1 из которых состоит файл ?
Ну как, считываешь по байту и делаешь восемь раз
mas=b&0x80;
i++;
b=b<<1;
Ну как, считываешь по байту и делаешь восемь раз
mas=b&0x80;
i++;
b=b<<1;
Очень смешно :)
Очень смешно :)
Ну, раз тебе смешно, придумывай сам.:devil:
Очень смешно :)
А почему смешно? Если не брать во внимание, что в коде 2 ошибки, то все нормально...
int mas[64];
int *ptr=mas;
for(int i=0;i<8;i++)
{
*ptr++=b&1;
b>>=1;
}
Внесу свой скромный лепет.=)
int mas[64];
int *ptr=mas;
for(int i=0;i<8;i++)
{
*ptr++=b&1;
b>>=1;
}
так они запихнутся в обратном порядке.
Внесу свой скромный лепет.=)
int mas[64];
int *ptr=mas;
for(int i=0;i<8;i++)
{
*ptr++=b&1;
b>>=1;
}
а тут не будет ппроблем з большими файлами?
а тут не будет ппроблем з большими файлами?
В смысле, влезут ли они в массив? Или тормоза при считывании? Если тормоза, читай поблочно и побайтово перекрючивай уже блоки.
В смысле, влезут ли они в массив? Или тормоза при считывании? Если тормоза, читай поблочно и побайтово перекрючивай уже блоки.
спасибо, ну и ещё вопрос, как мне с єтого масива обратно с него создать файл. Например закачал я в масив последоватеоьнность битов з бат файла, чёто там покопался и как с него обратно замутить бат файл? (естественно последовательнность не меняется)
спасибо, ну и ещё вопрос, как мне с єтого масива обратно с него создать файл. Например закачал я в масив последоватеоьнность битов з бат файла, чёто там покопался и как с него обратно замутить бат файл? (естественно последовательнность не меняется)
b:=0;
for (j=1; j<=8;j++)
{
if (mas)
b=b|1;
else
b=b&0xfe;
b=b<<1;
i++;
}
fil<<b;
адын байт
int mas[64];
int *ptr=mas;
int i=256;
while(i>>=1) *ptr++=bool(b&i);
спасибо, ну и ещё вопрос, как мне с єтого масива обратно с него создать файл. Например закачал я в масив последоватеоьнность битов з бат файла, чёто там покопался и как с него обратно замутить бат файл? (естественно последовательнность не меняется)
А не проще ли создать такой массив:
struct st_byte{
char b0 : 1;
char b1 : 1;
. . .
char b7 : 1;
}bits;
char byte;
}BYTE;
BYTE *m_data = malloc(size);
. . .
Работать с битами будет удобно, сохранять/загружать из файла проще и места в памяти в 8 раз меньше потребуется.