Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
задание_лабы_иус_cpp_2сем.doc
Скачиваний:
15
Добавлен:
16.04.2015
Размер:
252.42 Кб
Скачать

Int CicleMoveBitsLeft(int X, int n);

CicleMoveBitsLeft – осуществляет циклический сдвиг влево на n разрядов

Пример: CicleMoveBitsLeft(0xABCD,4) = 0xBCDA

№ 21

Int CicleMoveBitsRight(int X, int n);

CicleMoveBitsRight – осуществляет циклический сдвиг вправо на n разрядов

Пример: CicleMoveBitsRight(0xABCD,4) = 0xDABC

№ 22

Int ChangeGroupBits(int X, int y, int n1, int n2);

ChangeGroupBits(int x, int y, int n1, int n2) –возвращает х, в котором заданная группа разрядов получается исключающим или соответствующих групп х и у

Разряды нумеруются с 0

ChangeGroupBits(0xFFFF,0xFFA5,1,7) = FF5B

№ 23

Int MoveGroupBits(int X, int y, int n1, int n2);

MoveGroupBits – заменяет группу разрядов х с n1 по n2 соответствующей группой разрядов из у и возвращает полученное значение

Разряды нумеруются с 0

Пример: MoveGroupBits(0xABCD,0x1234,4,7) = 0xAB3D

№ 24

unsigned char ReverseByte(unsigned char c);

ReverseByte – реверсирует биты данного типа char

Примеры: ReverseByte(0xAB) - 0x D5

ReverseByte(0x1B) - 0x D8

Примечание: вывод осуществлять с помощью printf(), например

printf("%X\n",ReverseByte(0xAB));

№ 25

Int ReverseTetrads(int X);

ReverseTetrads - возвращает х с реверсированными тетрадами

Пример: ReverseTetrads(0xABCD) = DCBA

№ 26

int InversionGroupBit(int x, int n1, int n2);

InversionGroupBit - меняет значения бит на противоположные в заданной группе разрядов

Разряды нумеруются с 0

Пример: InversionGroupBit(0xABCD,4,7) = 0xAB3D

№ 27

int ChangeBits(int x, int y);

ChangeBits – возвращает значение х, в котром занулены те нечетные биты, которые в у равны 1. Четные биты не изменяются.

Разряды нумеруются с 0

Пример: ChangeBits(0x6FFF,0x00F0) = 0x6F5F

№ 28

int ChangeBits(int x, int y);

ChangeBits – возвращает значение х, в котром установлены в 1 те четные биты, которые в у равны 0. Нечетные биты не изменяются.

Разряды нумеруются с 0

Пример: ChangeBits(0x0003,0x04F9) = 5107

№ 29

int EraseExceptGroupBits(int x, int n1, int n2);

EraseExceptGroupBits -возвращает х с обнуленными разрядами, за исключением заданной группы

Разряды нумеруются с 0

Пример: EraseExceptGroupBits(0xABCD,4,7) = 0xC0

№30

int ChangeGroupBits(int x, int y, int n1, int n2);

ChangeGroupBits(int x, int y, int n1, int n2) –возвращает х, в котором заданная группа бит заменяется соответствующей инвертированной группой бит из у

Разряды нумеруются с 0

ChangeGroupBits(0xFFFF,0xFF8A,1,7) = FF75

31

int sign(int x);

sign - возвращает 1, если х>0, 0(x==0), -1(x<0)

Пример: sign(130) = 1 ; sign(-23) = -1

№ 32

int addOK(int x, int y);

addOK - возвращает 1, если x+y не дает переполнения

Пример: addOK(0x80000000,0x80000000) = 0,

addOK(0x80000000,0x70000000) = 1,

33

int bang(int x);

bang - возвращает !x без использования !

Пример: bang(3) = 0, bang(0) = 1

Задание N 6

Создать класс визуальной компоненты с необходимым набором конструкторов, деструктором, соответствующими методами и операциями.

Спроектированный интерфейс класса (набор методов, предоставляемый пользователю для работы с объектом) перед реализацией обсудить с преподавателем. Реализация, не согласованная с преподавателем, к рассмотрению приниматься не будет.

Текстовый режим.

Пример реализации в Visual Studio приведен директории CONSOLE APPLICATION.

Коды псевдографических символов:

Одинарная линия Двойная линия

Левый верхний угол 0xDA Левый верхний угол 0xС9

Правый верхний угол 0xBF Правый верхний угол 0xBB

Левый нижний угол 0xC0 Левый нижний угол 0xC8

Правый нижний угол 0xD9 Правый нижний угол 0xBC

Горизонтальная линия 0xC4 Горизонтальная линия 0xCD

Вертикальная линия 0xD3 Вертикальная линия 0xBA

******************** Пример описания класса RadioButton ********************

enum BOOL {FALSE,TRUE};

class RadioButton

{

struct BUTTON

{

int x,y;

char * Label;

};