+ num + ' ');

}

}

}

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

num: 1

num после сброса младшего разряда: О num: 2

num после сброса младшего разряда: 2 num: 3

num после сброса младшего разряда: 2 num: 4

num после сброса младшего разряда: 4 num: 5

num после сброса младшего разряда: 4 num: 6

num после сброса младшего разряда: 6 num: 7

num после сброса младшего разряда: 6 num: 8

num после сброса младшего разряда: 8 num: 9

num после сброса младшего разряда: 8 num: 10

num после сброса младшего разряда: 10

Шестнадцатеричное значение OxFFFE, используемое в поразрядном операторе И, имеет следующую двоичную форму: 1111 1111 1111 1110. Таким образом, поразрядная операция И оставляет без изменения все двоичные разряды в числовом значении переменной num, кроме младшего разряда, который сбрасывается в нуль. В итоге четные числа не претерпевают никаких изменений, а нечетные уменьшаются на 1 и становятся четными.

Поразрядным оператором И удобно также пользоваться для определения установленного или сброшенного состояния отдельного двоичного разряда. В следующем примере программы определяется, является ли число нечетным.

// Применить поразрядный оператор И, чтобы определить,

// является ли число нечетным.

using System;

class IsOdd {

static void Main() { ushort num;

num = 10;

if((num & 1) == 1)

Console.WriteLine('He выводится.') ;

num = 11;

if((num & 1) == 1)

Console.WriteLine(num + ' — нечетное число.');

}

}

Вот как выглядит результат выполнения этой программы.

11 — нечетное число.

В обоих операторах if из приведенной выше программы выполняется поразрядная операция И над числовыми значениями переменной num и 1. Если младший двоичный разряд числового значения переменной num установлен, т.е. содержит двоичную 1, то результат поразрядной операции num & 1 оказывается равным 1. В противном случае он равен нулю. Поэтому оператор i f может быть выполнен успешно лишь в том случае, если проверяемое число оказывается нечетным.

Возможностью проверять состояние отдельных двоичных разрядов с помощью поразрядного оператора & можно воспользоваться для написания программы, в которой отдельные двоичные разряды проверяемого значения типа byte приводятся в двоичной форме. Ниже показан один из способов написания такой программы.

// Показать биты, составляющие байт.

using System;

class ShowBits {

static void Main() { int t; byte val;

val = 123;

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

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

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату