Здравствуйте, Юдин Евгений Сергеевич.
Содержательная часть - в приложении. main() написан только для простой проверки. Его надо переписать.
Вообще-то байты лучше переворачивать с помощью таблицы, только это может не понравиться преподавателю.
Функция работает с любыми числами, а не только теми, что влезают в один байт как в условии.
Приложение:
unsigned char rev_byte (unsigned char src) {
unsigned char dst;
int cnt;
for (dst = 0, cnt = 0; cnt < 8; ++cnt, src >>= 1) {
dst <<= 1;
if (src & 1) dst |= 1;
}
return dst;
}
int rev_int(int src) {
unsigned cnt;
union {
int src;
unsigned char bytes[sizeof(int)];
} d;
d.src = src;
for (cnt = 0; cnt < sizeof(int); ++cnt)
d.bytes[cnt] = rev_byte (d.bytes[cnt]);
return d.src;
}
#ifdef DEBUG
#include <stdio.h>
int main(int ac, char **av) {
printf("%d\n", rev_int(1000000));
return 0;
}
#endif