Переписать код работы с битами с Pascal - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Есть функция на паскале:
Листинг программы
  1. function code(data: string): string;
  2. var
  3. i: Word;
  4. LastByte: Byte;
  5. begin
  6. //...
  7. // надо собрать старшие биты
  8. LastByte:= LastByte or (($80 and ord(data[i])) shr ByteCnt);
  9. //...
  10. end;
её необходимо перевести на си:
Листинг программы
  1. ...
  2. unsigned int byte_cnt = 0; /* 2 байта */
  3. unsigned char last_byte = 0, unsigned char data_buf;
  4. ...
  5. /* в data_buf в цикле вносим элемент строки под номером i, равном в общем случае byte_cnt*/
  6. last_byte |= ( (data_buf & 0x80) >> byte_cnt );
Но тут что-то неправильно, не работает, если сможете помочь, буду премного благодарен...

Решение задачи: «Переписать код работы с битами с Pascal»

textual
Листинг программы
  1. unsigned char data_buf[размер];

Объяснение кода листинга программы

  1. Объявлена массивная переменная data_buf типа unsigned char размером размер. void func(void) { int i; // ... }
  2. В функции func объявлена переменная i типа int. // Код работы с битами int main(void) { // ... func(); // ... }
  3. В функции main вызвана функция func. void func(void) { // ... // Код работы с битами }
  4. В функции func отсутствует какая-либо другая реализация, кроме кода работы с битами. Примечание: В коде, представленном в вопросе, отсутствуют комментарии, объясняющие, как именно выполняется работа с битами. Поэтому мы можем только предположить, что это за код и что он делает.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут