Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

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

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






ПРИМЕР РЕШЕНИЯ ЗАДАЧИ




 

Преобразовать число int по следующему принципу: два младших бита перенести в начало, после чего младшие 8 бит инвертировать.

 

#include<conio.h>

#include<stdio.h>

 

int incode(unsigned int data)

{

unsigned int rez;

char tmp;

 

// Получаем два младших бита

tmp = data&3;

 

// Переносим два младших бита в начало

rez = (data>>2)|(tmp<<14);

 

// Инвертируем 8 младших бит

rez = rez^(0xFF);

 

return rez;

}

 

int decode(unsigned int data)

{

unsigned int rez;

char tmp;

 

// Инвертируем 8 младших бит

rez = data^(0xFF);

 

// Получаем два старших бита

tmp = (rez>>14)&3;

 

// Переносим два старших бита в конец

rez = (rez<<2)|tmp;

 

return rez;

}

 

void printBinary(unsigned int v)

{

int i;

for(i=sizeof(int)*8-1; i>=0; i--)

printf("%d", (v>>i)&1);

printf("\n");

}

 

void main(void)

{

unsigned int v_in, v_out;

clrscr();

printf("Введите число ");

scanf("%u", &v_in);

 

v_out = incode(v_in);

printf("Исходное число %u\n", v_in);

printf("Его бинарное представление: ");

printBinary(v_in);

printf("После кодирования %u\n", v_out);

printf("Бинарное представление: ");

printBinary(v_out);

printf("После декодирования %u\n", decode(v_out));

getch();

}

 

 

Введите число 101

Исходное число 101

Его бинарное представление: 0000000001100101

После кодирования 16614

Бинарное представление: 0100000011100110

После декодирования 101

 

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Какой битовой операцией можно установить значение бита в 0?

2. Какой битовой операцией можно установить значение бита в 1?

3. Каким образом можно установить 0 в третий справа бит, не изменив значения других битов?

4. Что означает следующее выражение: (v>>5)&1? Чем результат этого выражения отличается от v&(1<<5)?

5. Как изменится число, если к нему два раза применить операцию исключающего «или» с одним и тем же значением (например, (45^82)^82)?

6. Чем битовое отрицание (~) отличается от обычного отрицания (!)?

7. Как проверить четность целого числа с помощью битовых операций?

8. Как с помощью битовых операций получить остаток от деления целого числа на четыре?

9. Значения каких битов могут измениться, если к некоторому числу применить операцию «или» с числом 18 (x|18)? Как изменится результат этого выражения, если операцию «или» с числом 18 применить еще раз ((x|18)|18)?

10. Где и как применяются битовые операции?

 


СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

 

1. Березин Б.И., Березин С.Б. Начальный курс С и С++. – М.: Диалог-МИФИ, 2007. – 288с.

2. Дейтел, Х. Как программировать на С: [пер. с англ.]/ Х. Дейтел, П. Дейтел. – М.: БИНОМ-ПРЕСС, 2002. – 1168с.

3. Керниган Б., Ритчи Д.. Язык программирования Си. – СПб.: Невский Диалект, 2000. - 350 с.

4. Керниган Б., Пайк Р.. Практика программирования. - СПб.: Невский Диалект, 2001. - 380 с.

5. Павловская Т. А., Щупак Ю. А.. С/С++. Структурное программирование: Практикум. – СПб.: Питер, 2007. – 238 с.

6. Павловская Т.А.. С/С++. Программирование на языке высокого уровня. СПб.: Питер, 2006. – 464 с.

 

 


Программирование на языках высокого уровня. Работа с битовыми операциями: методические указания к выполнению лабораторной работы №8 для студентов 1 курса очной формы обучения специальностям 230105 «Программное обеспечение вычислительной техники и автоматизированных систем» и 010503 «Математическое обеспечение и администрирование информационных систем».

 

 


АЛЕКСАНДР ПАВЛОВИЧ БАБИН

 

 

Научный редактор В.И. Израилев

Редактор издательства Л.И. Афонина

Компьютерный набор А.П. Бабин

 

 

Темплан 2009г., п.295

Подписано в печать. Формат 60x84 1/16. Бумага офсетная. Офсетная печать

Усл. печ. л. 0,7 Уч.-изд. л. 0.7 Тираж 30 экз. Заказ Бесплатно

 

Брянский государственный технический университет

241035, г. Брянск, бульвар им. 50-летия Октября, 7, БГТУ. 58-82-49

Лаборатория оперативной типографии БГТУ, ул. Харьковская, 9.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных