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

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

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

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

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

textual
Листинг программы
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