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

Ваш аккаунт

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

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

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

Биты и байты

18K
17 июня 2006 года
pashaelektron
5 / / 17.06.2006
Как сохранить 8 знаков (0 или 1) в файл с размером 1 байт:confused:
2
17 июня 2006 года
squirL
5.6K / / 13.08.2003
при помощи логических операций. берешь байт. изначально все его биты равны нулям. перебираешь знаки. если знак равен 0, нчиего не трогаешь. если 1 - делаешь AND соответствующего разряда.
18K
17 июня 2006 года
pashaelektron
5 / / 17.06.2006
Что такое АНД?Какие функции записи в файл использовать?Я пробовал fwrite - минимум один знак ето один байт ,а мне нужно один бит
2
17 июня 2006 года
squirL
5.6K / / 13.08.2003
1. AND - операция логического ИЛИ.
2. тебе и надо байт записывать. сначала ты его обрабатываешь, затем записываешь в файл. или тебе код надо?
18K
17 июня 2006 года
pashaelektron
5 / / 17.06.2006
Предо мной стоит задача записать 400 тисячь матриц 16х16 (елементы 0 или 1)в файл размер которого около 4 мегабайт.Плиз ответы по конкретней если можно с примерами похожых прог

:eek:
1.9K
17 июня 2006 года
[*]Frosty
278 / / 17.06.2006
Если ты не знаешь, что такое AND:confused: , как ты это собираешься сделать. Учись думать сам, а на подобных сайтах ищи подсказки, если конешно хочеш чему-нибуть научиться;)
18K
17 июня 2006 года
pashaelektron
5 / / 17.06.2006
[QUOTE='
  • Frosty']Если ты не знаешь, что такое AND:confused: , как ты это собираешься сделать. Учись думать сам, а на подобных сайтах ищи подсказки, если конешно хочеш чему-нибуть научиться;)[/QUOTE]
    не флуди, если ты не можеш помочь не мешай (В книгах нет - где ж еще искать)
  • 1.9K
    17 июня 2006 года
    [*]Frosty
    278 / / 17.06.2006
    Я флудом не занимаюсь. Мне просто интересно. А про AND незнать... Тебе же сказали:
    squirL
    1. AND - операция логического ИЛИ.
    2. тебе и надо байт записывать. сначала ты его обрабатываешь, затем записываешь в файл. или тебе код надо?

    Помоему хватит каплю подумать, если умеешь и посмотреть в КНИГЕ. Ссылки на тематику:
    -Логические операции AND(логическое и), OR(логическое или), NOT(отрицание).
    "Google"ом или "Яндекс"ом надеюсь пользоваться умеешь.
    А далее с помощью этих операций упаковываешь свои матрицы по 8 значений в байт.
    А как не объясняй не поймешь.

    2Модератору:
    За оскорбление не считать, проверьте мою личку.
    929
    17 июня 2006 года
    sp999
    198 / / 31.01.2003
    [QUOTE='
  • Frosty']Я флудом не занимаюсь. Мне просто интересно. А про AND незнать... Тебе же сказали:
    squirL
    1. AND - операция логического ИЛИ.
    [/QUOTE]
    Поржаль! :D
    Ваще-то AND - это логическое И
  • 2
    17 июня 2006 года
    squirL
    5.6K / / 13.08.2003
    [quote=sp999]Поржаль! :D
    Ваще-то AND - это логическое И[/quote]
    мля... в натуре, каюсь. думал об одном, написал другое. камраду OR надо.
    13K
    17 июня 2006 года
    Dr_C++
    40 / / 07.06.2006
    Просто тебе надо записывать данные в бинарный(двоичный) файл, где записываються не символы (один символ - 1 байт), а именно числа (тоесть одно число инт будет занимать 4 байта, чар - 1 байт)...
    Для более конкретной информации напиши в поисковике "запись в двоичный фаил"... Почитай хелпу о функцие _wfopen
    1.9K
    17 июня 2006 года
    [*]Frosty
    278 / / 17.06.2006
    2Dr_C++
    Ему для начала нужно объяснить, что записать в файл он может минимум байт. И ему нужно свои матрицы упаковать в эти байты, а затем выводить. Для упаковки точно, так же каюсь не обратил внимания нужно использовать OR. Вместо байтов можно использовать и более длинные структуры.
    Но, что делать если человеку говорят использую "или", а он говорит "ЧТО ЭТО?". В форуме не столько много места, чтобы прочитать лекцию по дискретке. Здесь только подсказки. Он должен был хотя бы немного постараться, подумать, поискать. Все с неба не валится
    3
    18 июня 2006 года
    Green
    4.8K / / 20.01.2000
    [QUOTE=squirL]мля... в натуре, каюсь. думал об одном, написал другое. камраду OR надо.[/QUOTE]
    OR - было последней каплей...
    Лучшеб он не спрашивал... :)
    Парню код нужен, а не ваши умные советы.
    Я ничем помочь не могу... только советами... :D
    2
    18 июня 2006 года
    squirL
    5.6K / / 13.08.2003
    а чем тебя OR не устраивает?

    упрощенный пример -
    Код:
    #include <math.h>
    #include <stdio.h>

    int main()
    {
       unsigned char c=0;
       int array[8]={0,0,0,1,0,1,0,0};
       int i;
       for (i=7; i>=0; i--)
       {
          if (array == 1)
         {
             c = c | (int)pow(2,i);
         }
       }
       printf("%d\n",(int) c);
    }


    что то типа.
    18K
    18 июня 2006 года
    pashaelektron
    5 / / 17.06.2006
    [QUOTE='
  • Frosty']2Dr_C++
    Ему для начала нужно объяснить, что записать в файл он может минимум байт. И ему нужно свои матрицы упаковать в эти байты, а затем выводить. Для упаковки точно, так же каюсь не обратил внимания нужно использовать OR. Вместо байтов можно использовать и более длинные структуры.
    Но, что делать если человеку говорят использую "или", а он говорит "ЧТО ЭТО?". В форуме не столько много места, чтобы прочитать лекцию по дискретке. Здесь только подсказки. Он должен был хотя бы немного постараться, подумать, поискать. Все с неба не валится[/QUOTE]
    1.-Мне не надо обяснять что такое лог. операции (я с ними знаком) просто литература оперирует русскими абревиатурами, а не английскими как вы!!!
    2.(Green-у)-Готовый программный код мне не нужен, поетому не надо бла-бла.
    3.-Упаковывать 8 символов в один байт идея была но проблема в том что сохранить в файл (главная цель),даже двоичный, можна минимум один символ-1 байт.И всякие там чары а не инты не помогают:(
  • 3
    18 июня 2006 года
    Green
    4.8K / / 20.01.2000
    [QUOTE=pashaelektron]
    Как сохранить 8 знаков (0 или 1) в файл с размером 1 байт
    [/QUOTE]

    [QUOTE=pashaelektron]
    3.-Упаковывать 8 символов в один байт идея была
    [/QUOTE]
    Гениально.
    [QUOTE=pashaelektron]
    но проблема в том что сохранить в файл (главная цель),даже двоичный, можна минимум один символ-1 байт.
    [/QUOTE]
    Я не просто так везде выделил "один байт".
    Ты сам описал последовательность действий.
    Так в чем проблема?

    [QUOTE=pashaelektron]И всякие там чары а не инты не помогают:(
    [/QUOTE]
    Ты их упрашивал?
    242
    18 июня 2006 года
    Оlga
    2.2K / / 04.02.2006
    [quote=pashaelektron]Как сохранить 8 знаков (0 или 1) в файл с размером 1 байт:confused:[/quote]
    C
    Код:
    #include <stdio.h>
    #define N 8
    int main(void)
    {
     int arr[] = {1,0,0,1,1,0,1,0};
     unsigned char c = 0, mask = 128;
     int i, j = N-1;
    /* упаковка 8 символов (1 or 0) в 1 баит */
     for(i = 0; i < N; i++,j--)
          if(arr)
              c = c | (arr << j);
     
    //расспаковка байта
     while(mask)
     {
        if( c & mask) printf("1 ");
        else printf("0 ");
        mask >>= 1;
     }
     return 0;
    }


    ну или я вообще не поняла что тебе надо, если что непинаться
    3
    18 июня 2006 года
    Green
    4.8K / / 20.01.2000
    Готовый программный код ему не нужен, поетому не надо бла-бла. :D
    242
    18 июня 2006 года
    Оlga
    2.2K / / 04.02.2006
    ну так объясни что ему нужно, вместо кривляться: бла-бла
    242
    18 июня 2006 года
    Оlga
    2.2K / / 04.02.2006
    Цитата:
    3.-[COLOR=red]Упаковывать 8 символов в один байт идея была [/COLOR]но проблема в том что сохранить в файл (главная цель),даже двоичный, [COLOR=blue]можна минимум один символ-1 байт.[/COLOR]


    если честно понять такое с моим образованием трудно, а можно выразиться попроще и попонятней в чем проблема.
    вроде изначально говорил что проблема как упакавать 8 чисел в один баит, а сейчас в чем?

    Цитата:
    И всякие там чары а не инты не помогают


    не помагают в чем?

    9.4K
    18 июня 2006 года
    _nоrth_
    99 / / 24.04.2006
    [QUOTE=pashaelektron]Предо мной стоит задача записать 400 тисячь матриц 16х16 (елементы 0 или 1)в файл размер которого около 4 мегабайт.Плиз ответы по конкретней если можно с примерами похожых прог:eek:[/QUOTE]Запись одной матрицы [16][16] из 400 000 в сжатом виде
    Код:
    int x[16][16];
    // ...
    // ...

    // "Сжатие"
    int *px = &x[0][0];
    unsigned int y[8];
    for(int i = 0; i<8; i++)
    {
      unsigned int b = 0;
      unsigned int pwr = 0x80000000;
      for(int j = 0; j < 32; j++)
      {
        if(*px==1)b|=pwr;
        px++;
        pwr>>=1;
      }
      y = b;
    }

    // Запись
    DWORD dwRW;
    HANDLE f = CreateFile("C:\\binary.f", GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0);
    WriteFile(f, y, 32, &dwRW, 0);
    CloseHandle(f);
    Чтение значения матрицы обратно
    Код:
    DWORD dwRW;
    int x[16][16];
    int *px = &x[0][0];
    int y[8];
    // Чтение
    HANDLE f = CreateFile("C:\\binary.f", GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0);
    ReadFile(f, y, 32, &dwRW, 0);
    CloseHandle(f);

    // "Распаковка"
    for(int i = 0; i<8; i++)
    {
      unsigned int b = y;
      unsigned int pwr = 0x80000000;
      for(int j = 0; j < 32; j++)
      {
        if((pwr&b)!=0)
          *px = 1;
        else
          *px = 0;
        pwr = pwr>>1;
        px++;
      }
    }
    1
    18 июня 2006 года
    kot_
    7.3K / / 20.01.2000
    Вот так бывает - начале человек задает изумительные вопросы - а затем сам же и жалуется модератору. :)
    Типа тупо ему отвечают.
    Так что, товарисчи - что ж вы тупите? Не хорошо - человеку книги читать лень - а выему все никак не ответите - вон сколько тянули. Да еще и англискими абревиатурами оперируете. Как не стыдно. ;)
    По поводу темы - отправляю ее к студентам.
    242
    18 июня 2006 года
    Оlga
    2.2K / / 04.02.2006
    [quote=kot_]Вот так бывает - начале человек задает изумительные вопросы - а затем сам же и жалуется модератору. :)
    Типа тупо ему отвечают.
    Так что, товарисчи - что ж вы тупите? Не хорошо - человеку книги читать лень - а выему все никак не ответите - вон сколько тянули. Да еще и англискими абревиатурами оперируете. Как не стыдно. ;)
    [COLOR=red]По поводу темы - отправляю ее к студентам.[/COLOR][/quote]

    Почему именно в Студенты(я возмущена :) !), можно в раздел Отдохнем в конце концов
    242
    18 июня 2006 года
    Оlga
    2.2K / / 04.02.2006
    что за глюки с quote? у меня такое же было с ЛС
    1
    18 июня 2006 года
    kot_
    7.3K / / 20.01.2000
    [QUOTE=OlgaKr][quote=kot_]Вот так бывает - начале человек задает изумительные вопросы - а затем сам же и жалуется модератору. :)
    Типа тупо ему отвечают.
    Так что, товарисчи - что ж вы тупите? Не хорошо - человеку книги читать лень - а выему все никак не ответите - вон сколько тянули. Да еще и англискими абревиатурами оперируете. Как не стыдно. ;)
    [COLOR=red]По поводу темы - отправляю ее к студентам.[/COLOR][/quote]

    Почему именно в Студенты(я возмущена :) !), можно в раздел Отдохнем в конце концов[/QUOTE]
    Надо отдельную тему создать - назвать ее типа помойки :) (ну или может как то более приглядно) - и туда сбрасывать. А то честно говоря я просто по критерию, обнаковенный лентяй - обычно нормальный студент.
    З.Ы. У тебя в тег цитаты влез тег цвета - потому и заглючило.
    9.4K
    18 июня 2006 года
    _nоrth_
    99 / / 24.04.2006
    [QUOTE=pashaelektron]Как сохранить 8 знаков (0 или 1) в файл с размером 1 байт:confused:[/QUOTE]
     
    Код:
    byte b[8];
    DWORD dwRW;
    HANDLE f = CreateFile("C:\\binary.f", GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0);
    WriteFile(f, b, 8, &dwRW, 0);
    CloseHandle(f);
    Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
    Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог