Написать функцию, меняющую порядок бит в байте - C (СИ)
Формулировка задачи:
написать функцию, меняющую порядок бит в байте.
заранее спасибо
Решение задачи: «Написать функцию, меняющую порядок бит в байте»
textual
Листинг программы
#include <stdio.h> void print_bits(signed char ch) { int i; for (i = 7; i >= 0; --i) printf("%d", ch >> i & 1); } signed char reverse_bits(signed char ch) { signed char result = 0; int i; for (i = 7; i >= 0; --i) result ^= (ch >> (7 - i) & 1) << i;; return result; } int main(void) { print_bits(-10); putchar('\n'); print_bits(reverse_bits(-10)); putchar('\n'); return 0; }
Объяснение кода листинга программы
В данном коде реализованы две функции:
- Функция print_bits(signed char ch) принимает в качестве аргумента однобайтовый символ (подтип signed char) и выводит на экран значение каждого бита этого символа.
- Функция reverse_bits(signed char ch) принимает в качестве аргумента однобайтовый символ (подтип signed char) и возвращает однобайтовый символ, в котором порядок битов обратный. В функции main() вызываются эти две функции. Сначала выводится на экран значение битов аргумента -10, затем выводится значение битов результата функции reverse_bits(-10).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д