Переписать код работы с битами с 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[размер];
Объяснение кода листинга программы
- Объявлена массивная переменная
data_bufтипа unsigned char размеромразмер. void func(void) { int i; // ... } - В функции
funcобъявлена переменнаяiтипа int. // Код работы с битами int main(void) { // ... func(); // ... } - В функции
mainвызвана функцияfunc. void func(void) { // ... // Код работы с битами } - В функции
funcотсутствует какая-либо другая реализация, кроме кода работы с битами. Примечание: В коде, представленном в вопросе, отсутствуют комментарии, объясняющие, как именно выполняется работа с битами. Поэтому мы можем только предположить, что это за код и что он делает.