в правый конец слова. описание
getbits(x,p,n) /* get n bits from position p */ unsigned x, p, n; { return((x >> (p+1-n)) & \^(\^0 << n)); }
Операция x >> (p+1-n) сдвигает желаемое поле в правый конец слова. описание аргумента x как unsigned гарантирует, что при сдвиге вправо освобождающиеся биты будут заполняться нулями, а не содержимым знакового бита, независимо от того, на какой машине пропускается программа. Все биты константного выражения \^0 равны 1; сдвиг его на n позиций влево с помощью операции \^0<<n создает маску с нулями в n крайних правых битах и единицами в остальных; дополнение \^ создает маску с единицами в n крайних правых битах.
Упражнение 2-5 Переделайте getbits таким образом, чтобы биты отсчитывались слева направо.
Упражнение 2-6 Напишите программу для функции wordlength(), вычисляющей длину слова используемой машины, т.е. Число битов в переменной типа int. функция должна быть переносимой, т.е. Одна и та же исходная программа должна правильно работать на любой машине.
Упражнение 2-7 Напишите программу для функции rightrot(n,b), сдвигающей циклически целое n вправо на b битовых позиций.
Упражнение 2-8 Напишите программу для функции invert(x,p,n), которая инвертирует (т.е. заменяет 1 на 0 и наоборот) n битов x, начинающихся с позиции p, оставляя другие биты неизмененными.
on_load_lecture()
|
|
Дальше »
|
|
Если Вы заметили ошибку - сообщите нам. |
|
Страницы:
« |
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
вопросы | »
|
|
для печати и PDA
|
|
|
|
Курсы | Учебные программы | Учебники | Новости | Форум | Помощь
Телефон: +7 (495) 253-9312, 253-9313, факс: +7 (495) 253-9310, email: info@intuit.ru
© 2003-2007, INTUIT.ru::Интернет-Университет Информационных Технологий - дистанционное образование
|
Содержание Назад Вперед