Пример побитовых операций

Пример.

Битовое представление беззнакового целого числа 0 <= п <= 255.

#include <stdio.h>

     void main()

{ extern void _bits(unsigned sp);

     unsigned val;

     printf("Введите целое беззнаковое число n "); scanf("%u",&val);

     if (val>=0) _bits(val); }

 void _bits(unsigned sp)

{const int max=7; int i;

     printf("\n Битовое представление для %u",sp);

     for (i=max;i>=0; i--)

     printf("%d", sp>>i&l);

}

Другим способом работы с разрядами является использование битовых по­лей. Полем считается последовательность соседних битов (разрядов) в числе типа int или unsigned int. Битовые поля устанавливаются с помощью структуры. Как правило, битовые поля располагаются от меньших номеров к большим.

Пример:

#include <stdio.h>

typedef struct {unsigned i: 1;

unsigned j:l;

unsigned k: 1;

}bit_l;

void main()

{bit_l my_val;

... my_val.i=l; my_val.j = 0;....}

В структуре примера устанавливаются три одноразрядных поля, т.е. в пе­ременной my_val типа int используются только три первых разряда, причем одноразрядным элементам структуры присваиваются значения 0 или 1.

Поле битовой структуры может не иметь имени, например, unsigned :3;. Если общее число объявленных битов превысит размер переменной int, то ис­пользуется следующая ячейка int. Одиночное поле не может перекрыть грани­цу между двумя int. Компилятор автоматически сдвигает перекрывающее поле на следующую ячейку int, при этом в первом int остается безымянное место.

 


Читайте также

Побитовые операции. Битовые поля

Тема посвящена разработке программ с использованием побитовых операций, а именно, поразрядных…

Классы

Фундаментальным механизмом ООП является понятие класса. Класс представляет собой....

Доступ к элементам класса

Доступ к элементам или полям класса можно осуществить тремя способами:

Наследование

Вновь создаваемый класс может наследовать элементы и свойства уже существующих классов.…


Подпишись на нашу группу в контакте и будь в курсе обновлений:


Статистика VkPlayer




Комментарии (0)







Разрешённые теги: <b><i><br>Добавить новый комментарий: