ТОР 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. Бумага офсетная. Офсетная печать
Брянский государственный технический университет 241035, г. Брянск, бульвар им. 50-летия Октября, 7, БГТУ. 58-82-49 Лаборатория оперативной типографии БГТУ, ул. Харьковская, 9. Не нашли, что искали? Воспользуйтесь поиском:
|