Студопедия


Авиадвигателестроения Административное право Административное право Беларусии Алгебра Архитектура Безопасность жизнедеятельности Введение в профессию «психолог» Введение в экономику культуры Высшая математика Геология Геоморфология Гидрология и гидрометрии Гидросистемы и гидромашины История Украины Культурология Культурология Логика Маркетинг Машиностроение Медицинская психология Менеджмент Металлы и сварка Методы и средства измерений электрических величин Мировая экономика Начертательная геометрия Основы экономической теории Охрана труда Пожарная тактика Процессы и структуры мышления Профессиональная психология Психология Психология менеджмента Современные фундаментальные и прикладные исследования в приборостроении Социальная психология Социально-философская проблематика Социология Статистика Теоретические основы информатики Теория автоматического регулирования Теория вероятности Транспортное право Туроператор Уголовное право Уголовный процесс Управление современным производством Физика Физические явления Философия Холодильные установки Экология Экономика История экономики Основы экономики Экономика предприятия Экономическая история Экономическая теория Экономический анализ Развитие экономики ЕС Чрезвычайные ситуации ВКонтакте Одноклассники Мой Мир Фейсбук LiveJournal Instagram

Операторы сдвига




значение << число_битов

значение >> число_битов

// Продемонстрировать применение операторов сдвига.

using System;

class ShiftDemo

{

static void Main()

{

int val = 1;

for (int i = 0; i < 8; i++)

{

for (int t = 128; t > 0; t = t / 2)

{

if ((val & t) != 0) Console.Write("1 ");

if ((val & t) == 0) Console.Write("0 ");

}

Console.WriteLine();

val = val << 1; // сдвиг влево

}

Console.WriteLine();

val = 128;

for (int i = 0; i < 8; i++)

{

for (int t = 128; t > 0; t = t / 2)

{

if ((val & t) != 0) Console.Write("1 ");

if ((val & t) == 0) Console.Write("0 ");

}

Console.WriteLine();

val = val >> 1; // сдвиг вправо

}

}

}

Результат выполнения этой программы выглядит следующим образом.

0 0 0 0 0 0 0 1

0 0 0 0 0 0 1 0

0 0 0 0 0 1 0 0

0 0 0 0 1 0 0 0

0 0 0 1 0 0 0 0

0 0 1 0 0 0 0 0

0 1 0 0 0 0 0 0

1 0 0 0 0 0 0 0

1 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0

0 0 1 0 0 0 0 0

0 0 0 1 0 0 0 0

0 0 0 0 1 0 0 0

0 0 0 0 0 1 0 0

0 0 0 0 0 0 1 0

0 0 0 0 0 0 0 1

Двоичные разряды соответствуют форме представления чисел в степени 2, и поэтому операторы сдвига могут быть использованы для умножения или деления целых значений на 2. Так, при сдвиге вправо целое значение удваивается, а при сдвиге влево — уменьшается наполовину. Разумеется, все это справедливо лишь в том случае, если крайние разряды не теряются при сдвиге в ту или иную сторону.

// Применить операторы сдвига для умножения и деления на 2.

using System;

class MultDiv

{

static void Main()

{

int n=10;

Console.WriteLine("Значение переменной n: " + n);

// Умножить на 2.

n = n << 1;

Console.WriteLine("Значение переменной n после " +

"операции n = n * 2: " + n);

// Умножить на 4.

n = n << 2;

Console.WriteLine("Значение переменной n после " +

"операции n = n * 4: " + n);

// Разделить на 2.

n = n >> 1;

Console.WriteLine("Значение переменной n после " +

"операции n = n / 2: " + n);

// Разделить на 4.

n = n >> 2;

Console.WriteLine("Значение переменной n после " +

"операции n = n / 4: " + n);

Console.WriteLine();

// Установить переменную n в исходное состояние.

n = 10;

Console.WriteLine("Значение переменной n: " + n);

// Умножить на 2 тридцать раз.

n = n << 30; // данные теряются

Console.WriteLine("Значение переменной п после " +

"сдвига на 30 позиций влево: " + n);

}

}





Дата добавления: 2015-04-12; просмотров: 215; Опубликованный материал нарушает авторские права? | Защита персональных данных | ЗАКАЗАТЬ РАБОТУ


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

Лучшие изречения: Для студентов недели бывают четные, нечетные и зачетные. 9147 - | 7329 - или читать все...

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

 

3.92.28.84 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.


Генерация страницы за: 0.001 сек.