Как я могу изменить порядок байтов целого числа?
Моя задача - преобразовать файл данных из формата с прямым и обратным порядком байтов в обратный и наоборот, используя C. Я искал в Интернете около 3 часов других примеров и читал свой учебник, однако я так зациклен на том, как это начать. функция.
Пока у меня есть правильный порядок событий (от 1 до 4), но внутри моегоconvert_and_save
Функция мне нужно создать массив символов с помощью →char buffer[4];
?
Может кто-нибудь, пожалуйста, помогите мне? даже если вы просто дадите мне подсказку, что искать, я был бы очень признателен.
Мне нужно написать функцию под названием:
void convert_and_save(struct record item, FILE * output_handle, int number);
внутри этой функции я делаю следующую последовательность шагов:
Преобразуйте целое число в массив символов, используя:
int integer_to_characters(int number, char * buffer)
{
memcpy(buffer, &number, 4);
}
Обратный порядок символов в этом массиве.
Преобразуйте массив символов в целое число, используя:
int characters_to_integer(char * buffer)
{
int result;
memcpy(&result, buffer, 4);
return result;
}
запишите преобразованную запись в выходной файл, используя:
void save_record(FILE * file_handle, struct record a)
{
char output_buffer[size_of_record];
integer_to_characters(a.age, &(output_buffer[0]));
memcpy(&(output_buffer[4]), a.name, 12);
integer_to_characters(a.department, &(output_buffer[16]));
fwrite(output_buffer, sizeof(char), size_of_record, file_handle);
}