Помогите, пожалуйста, разобрать пару процедур на С
От: Tronen  
Дата: 19.02.08 18:34
Оценка:
Привет Всем!!

У меня такая проблема — есть исходник на С, но я его совсем плохо вкуриваю... В красочном С# в VS еще что-то получается...

В общем есть кусок кода:


168  start_decoding();
169  {   int i;
170      value = 0;                     /* Ввод битов для запол- */
171      for (i = 1; i<=Code_value_bits; i++) { /* нения значе-  */
172          value = 2*value+input_bit();       /* ния кода      */
173      }
174      low = 0;                       /* В самом начале теку-  */
175      high = Top_value;              /* щий pабочий интеpвал  */
176  }                                  /* pавен исходному       */

239  int input_bit()
240  {   int t;
241      if (bits_to_go==0) {           /* Чтение байта, если    */
242          buffer = getc(stdin);      /* буфеp пуст            */
243          if (buffer==EOF) {
244              garbage_bits += 1;     /* Помещение любых битов */
245              if (garbage_bits>Code_value_bits-2) {  /* после */
246                  fprintf(stderr,"Bad input file\n"); /* кон- */
247                  exit(-1);          /* ца файла  с пpовеpкой */
248              }                      /* на слишком большое их */
249          }                          /* количество            */
250          bits_to_go = 8;
251      }
252      t = buffer&1;                  /* Выдача очеpедного     */
253      buffer >>= 1;                  /* бита с пpавого конца  */
254      bits_to_go -= 1;               /* (дна) буфеpа          */
255      return t;
256  }



в процедуре start_decoding() из простой бинарной последовательности (т.е. типа '00011010110011') высчитывается некое число типа decimal (или может еще более точные типы данных есть) для нахождения интервала к которому принадлежит это число.

В целом — исходник этот, это исходник арифметического кодера/декодера. Может среди Вас есть кто-нибудь, кто подскажет как мне транслировать этот код в C#.

Если кого заинтересует текст всего исходника — с удовольствием вышлю.


Заранее спасибо за ответы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.