Привет Всем!!
У меня такая проблема — есть исходник на С, но я его совсем плохо вкуриваю... В красочном С# в 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#.
Если кого заинтересует текст всего исходника — с удовольствием вышлю.
Заранее спасибо за ответы.