Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
{ public int x, y;
}
Class MainClass12
{ unsafe static void Main()
{ Point pt = new Point();
Point* pp = &pt;
pp->x = 123;
pp->y = 456;
Console.WriteLine("{0} {1}", pt.x, pt.y); // Вывод: 123 456
}
}
Унарные операции.
Пример 2.5. Использование операции инверсии разрядов целого числа (~).
Using System;
Class Demo
{ public static string ByteToStr(byte b)
// Преобразование байта (b) в двоичную форму
{ string s = ""; // Выходная строка
// Цикл преобразования 8-ми разрядов
for (sbyte n = 7; n >= 0; n--)
{ if ((byte)(b / Math.Pow(2, n)) == 1)
{ s = s + '1';
b = (byte)(b - (byte)(Math.Pow(2, n)));
}
Else
s = s + '0';
}
Return s;
}
Static void Main()
{ byte b = 1;
int i = (int) b;
i = ~i;
byte b2 = (byte) (i);
Console.WriteLine("Демонстрация инверсии разрядов " +
"целого числа:");
Console.WriteLine("Значение байта без инверсии: {0,3};\t" +
"двоичная форма: {1}", b, ByteToStr(b));
Console.WriteLine("Значение байта с инверсией: {0,3};\t" +
"двоичная форма: {1}", b2, ByteToStr(b2));
Console.ReadLine();
}
}
/* Вывод:
Демонстрация инверсии разрядов целого числа:
Значение байта без инверсии: 0; двоичная форма: 00000001
Значение байта с инверсией: 255; двоичная форма: 11111110
*/
Операции сдвига.
Пример 2.6. Использование сдвиговых операций.
Using System;
Class Demo
{ public static string ByteToStr(byte b)
// Преобразование байта (b) в двоичную форму
{... // Код функции смотри в примере 2.5
}
Дата публикования: 2015-10-09; Прочитано: 143 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!