Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2011, 14:22   #1
KrisPipis
 
Регистрация: 05.12.2010
Сообщений: 8
По умолчанию немного исправить задачу на си

Здравствуйте!
нужно немного подправить программку. Суть ее раскладывать побитово числа.
Так вот нужно, чтобы биты выводились в обратном порядке. Я поняла что нужно создать в main цикл for или while. Будьте добры помогите пожалуйста.

Код HTML:
#include <stdio.h>
#include <stdlib.h>

typedef struct
{
   FILE *f;
   unsigned char c;
   int pos;
   char md;
} BSTREAM;

int getbit(BSTREAM*s)
{
   if(s->pos>7)
   {
     int ch;
     ch=getc(s->f);
     if(ch==-1)
     return -1;
     s->c=ch;
     s->pos=0;
   }
   int r;
   r=(s->c>>s->pos)&1;
   s->pos++;
   return r;
}

BSTREAM * bopen(FILE *f,const char*mode)
{
   BSTREAM*s;
   if ((s=malloc(sizeof(BSTREAM)))==NULL)
   return 0;

   s->pos=0;
   s->md=mode[0];
   s->c=0;
   s->f=f;
   return s;
}

int main()
{
   int b=0;
   BSTREAM *s = bopen(stdin,"r");
   while(1)
   {
     b=getbit(s);
     printf("%d\n",b); 
     if(b==-1)
     break;
   }

printf("%d",b); 
}
KrisPipis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помгогите исправить немного :) m34 Фриланс 4 06.09.2009 19:33
Исправить задачку немного. PASCAL. АполинАрия Помощь студентам 2 04.06.2009 20:59
Помогите немного исправить Прогу ApXoH Паскаль, Turbo Pascal, PascalABC.NET 6 04.05.2009 14:22