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