Шрифт:
Интервал:
Закладка:
Array.ForEach(nums, ActionDemo.Show);
Console.WriteLine();
// Выполнить действие для отрицания значений.
Array.ForEach(nums, ActionDemo.Neg);
Console.Write("Содержимое массива nums после отрицания: ");
// Выполнить действие для повторного отображения значений.
Array.ForEach(nums, ActionDemo.Show);
}
}
Ниже приведен результат выполнения этой программы.
Содержимое массива nums: 5 2 3 4 1
Содержимое массива nums после отрицания: -5 -2 -3 -4 -1
Класс BitConverter
В программировании нередко требуется преобразовать встроенный тип данных в массив байтов. Допустим, что на некоторое устройство требуется отправить целое значение, но сделать это нужно отдельными байтами, передаваемыми по очереди. Часто возникает и обратная ситуация, когда данные получаются из устройства в виде упорядоченной последовательности байтов, которые требуется преобразовать в один из встроенных типов. Для подобных преобразований в среде .NET предусмотрен отдельный класс BitConverter.
Класс BitConverter является статическим. Он содержит методы, приведенные в табл. 21.13. Кроме того, в нем определено следующее поле.
public static readonly bool IsLittleEndian
Это поле принимает логическое значение true, если в текущей среде сначала сохраняется младший байт слова, а затем старший. Это так называемый формат с прямым порядком байтов. А если в текущей среде сначала сохраняется старший байт слова, а затем младший, то поле IsLittleEndian принимает логическое значение false. Это так называемый формат с обратным порядком байтов. В компьютерах с процессором Intel Pentium используется формат с прямым порядком байтов.
Таблица 21.13. Методы, определенные в классе BitConverter
Метод - Назначение
public static long DoubleToInt64Bits (double value) - Преобразует значение value в целочисленное значение типа long и возвращает результат
public static byte[] GetBytes (bool value) - Преобразует значение value в однобайтовый массив и возвращает результат
public static byte[] GetBytes (char value) - Преобразует значение value в двухбайтовый массив и возвращает результат
public static byte[] GetBytes (double value) - Преобразует значение value в восьмибайтовый массив и возвращает результат
public static byte[] GetBytes (float value) - Преобразует значение value в четырехбайтовый массив и возвращает результат
public static byte[] GetBytes (int value) - Преобразует значение value в четырехбайтовый массив и возвращает результат
public static byte[] GetBytes (long value) - Преобразует значение value в восьмибайтовый массив и возвращает результат
public static byte[] GetBytes (short value) - Преобразует значение value в двухбайтовый массив и возвращает результат
public static byte[] GetBytes (uint value) - Преобразует значение value в четырехбайтовый массив и возвращает результат
public static byte[] GetBytes (ulong value) - Преобразует значение value в восьмибайтовый массив и возвращает результат
public static byte[] GetBytes(ushort value) - Преобразует значение value в двухбайтовый массив и возвращает результат
public static double Int64BitsToDouble(long value) - Преобразует значение value в значение типа double и возвращает результат
public static bool ToBoolean(byte[] value, int startlndex) - Преобразует байт из элемента массива, указываемого по индексу value [startlndex], в эквивалентное значение типа bool и возвращает результат. Ненулевое значение преобразуется в логическое значение true, а нулевое — в логическое значение false
public static char ToChar(byte[] value, int index) - Преобразует два байта, начиная с элемента массива value [ index], в эквивалентное значение типа char и возвращает результат
public static double - ToDouble(byte[] value, int startlndex) - Преобразует восемь байтов, начиная с элемента массива value [startlndex], в эквивалентное значение типа double и возвращает результат
public static short Tolntl6(byte[] value, int startlndex) - Преобразует два байта, начиная с элемента массива value [startlndex], в эквивалентное значение типа short и возвращает результат
public static int ToInt32(byte[] value, int startlndex) - Преобразует четыре байта, начиная с элемента массива value [startlndex], в эквивалентное значение типа int и возвращает результат
public static long ToInt64(byte[] value, int startlndex) - Преобразует восемь байтов, начиная с элемента массива value [startlndex], в эквивалентное значение типа long и возвращает результат
public static float ToSingle(byte[] value, int startlndex) - Преобразует четыре байта, начиная с элемента массива value [startlndex], в эквивалентное значение типа float и возвращает результат
public static string ToString(byte[] value) - Преобразует байты из массива value в символьную строку. Строка содержит шестнадцатеричные значения, связанные с этими байтами и разделенные дефисами
public static string ToString(byte[] value, int startlndex) - Преобразует байты из массива value в символьную строку, начиная с элемента value[startindex]. Строка содержит шестнадцатеричные значения, связанные с этими байтами и разделенные дефисами
public static string ToString(byte[] value, int startlndex, int length) - Преобразует байты из массива value в символьную строку, начиная с элемента value [ startlndex] и включая число элементов, определяемых параметром length. Строка содержит шестнадцатеричные значения, связанные с этими байтами и разделенные дефисами
public static ushort ToUIntl6(byte[] value, int startlndex) - Преобразует два байта, начиная с элемента массива value [startlndex], в эквивалентное значение типа ushort и возвращает результат
public static uint ToUInt32(byte[] value, int startlndex) - Преобразует четыре байта, начиная с элемента массива value[startlndex], в эквивалентное значение типа uint и возвращает результат
public static ulong ToUInt64(byte[] value, int startlndex) - Преобразует восемь байтов, начиная с элемента массива value[startlndex], в эквивалентное значение типа ulong и возвращает результат
Генерирование случайных чисел средствами класса Random
Для генерирования последовательного ряда случайных чисел служит класс Random. Такие последовательности чисел оказываются полезными в самых разных ситуациях, включая имитационное моделирование. Начало последовательности случайных чисел определяется некоторым начальным числом, которое может задаваться автоматически или указываться явным образом.
В классе Random определяются два конструктора.
public Random()
public Random(int seed)
Первый конструктор создает объект типа Random, использующий системное время для определения начального числа. А во втором конструкторе используется начальное значение seed, задаваемое явным образом.
Методы, определенные в классе Random, перечислены в табл. 21.14.
Таблица 21.14. Методы, определенные в классе Random
Метод - Назначение
public virtual int Next() - Возвращает следующее случайное целое число, которое будет находиться в пределах от 0 до Int32.MaxValue-1 включительно
public virtual int Next(int maxValue) - Возвращает следующее случайное целое число, которое будет находиться в пределах от 0 до maxValue-1 включительно
public virtual int Next(int minValue, int maxValue) - Возвращает следующее случайное целое число, которое будет находиться в пределах от minValue до maxValue-1 включительно
public virtual void NextBytes(byte[] buffer) - Заполняет массив buffer последовательностью случайных целых чисел. Каждый байт в массиве будет находиться в пределах от 0 до Byte .MaxValue-1 включительно
- QT 4: программирование GUI на С++ - Жасмин Бланшет - Программирование
- C# для профессионалов. Том II - Симон Робинсон - Программирование
- ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ. РУКОВОДСТВО ПО УПРАВЛЕНИЮ ДОКУМЕНТИРОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ - ГОССТАНДАРТ РОССИИ - Программирование
- Управление исходными текстами. Часть 1. Краткое руководство по CVS - Илья Рыженков - Программирование
- Гибкое управление проектами и продуктами - Борис Вольфсон - Программирование
- Каждому проекту своя методология - Алистэр Коуберн - Программирование
- Разработка ядра Linux - Роберт Лав - Программирование
- Как спроектировать современный сайт - Чои Вин - Программирование
- Творческий отбор. Как создавались лучшие продукты Apple во времена Стива Джобса - Кен Косиенда - Прочая околокомпьтерная литература / Интернет / Программирование
- Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2 - Александр Фролов - Программирование