Переписать код работы с битами с 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
отсутствует какая-либо другая реализация, кроме кода работы с битами. Примечание: В коде, представленном в вопросе, отсутствуют комментарии, объясняющие, как именно выполняется работа с битами. Поэтому мы можем только предположить, что это за код и что он делает.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д