Используя только структуру и указатели вывести число по битам - C (СИ)
Формулировка задачи:
Вопрос в заголовке. Запрещено использовать логические операции. Хотелось бы с комментариями, никогда не работал с битовым представлением чисел, вот понадобилось..Если трудно написать код, то подскажите литературу где можно почитать. Заранее спасибо!
нужно видимо использовать битовые поля и битовые операции (сдвиг и тп), но я не знаю как это делать..
Решение задачи: «Используя только структуру и указатели вывести число по битам»
textual
Листинг программы
- #include <stdio.h>
- #include <conio.h>
- struct s
- {
- unsigned b0:1;
- unsigned b1:1;
- unsigned b2:1;
- unsigned b3:1;
- unsigned b4:1;
- unsigned b5:1;
- unsigned b6:1;
- unsigned b7:1;
- };
- int main()
- {int b;
- long a=7;
- s *t=(s*)&a;
- printf("%d",t->b7);
- printf("%d",t->b6);
- printf("%d",t->b5);
- printf("%d",t->b4);
- printf("%d",t->b3);
- printf("%d",t->b2);
- printf("%d",t->b1);
- printf("%d",t->b0);
- b=sizeof(s);
- printf("\n");
- printf("%d",b);
- getch();
- return 0;
- }
Объяснение кода листинга программы
В этом коде:
- Объявлена структура s, которая содержит восемь битовых полей (от b0 до b7) без значений.
- В функции main() объявлена переменная типа int b и переменная типа long a, которой присваивается значение 7.
- Выделена память под указатель t на один элемент массива структур s, используя оператор reinterpret_cast.
- Указатель t указывает на первый элемент массива структур s, который является полем b0 структуры s, которому присвоено значение 7.
- Используя указатель t, выводятся значения полей b0, b1, b2, b3, b4, b5, b6 и b7 структуры s.
- Переменной b присваивается значение размера структуры s.
- Выводится значение переменной b.
- Используя функцию getch(), программа переходит в режим ожидания нажатия клавиши.
- Возвращается 0, что означает успешный конец работы программы. Список не содержит более 20 элементов, поэтому можно пронумеровать их от 1 до 20.
- Объявление структуры s.
- Объявление переменной типа int b.
- Объявление переменной типа long a.
- Выделение памяти под указатель t на один элемент массива структур s.
- Указатель t указывает на первый элемент массива структур s.
- Вывод значения поля b0 структуры s.
- Вывод значения поля b1 структуры s.
- Вывод значения поля b2 структуры s.
- Вывод значения поля b3 структуры s.
- Вывод значения поля b4 структуры s.
- Вывод значения поля b5 структуры s.
- Вывод значения поля b6 структуры s.
- Вывод значения поля b7 структуры s.
- Переменной b присваивается значение размера структуры s.
- Вывод значения переменной b.
- Вызов функции getch().
- Возвращение 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д