Выбрать главу

// Выполнить действие для отображения значений.

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    Преобразует значение value в целочисленное значение

DoubleToInt64Bits (double типа long и возвращает результат

value)

public static byte [ ]    Преобразует значение value в однобайтовый массив    и

GetBytes (bool value)    возвращает результат

public static byte [ ]    Преобразует значение value в двухбайтовый массив    и

GetBytes (char value)    возвращает результат

public static byte [ ]    Преобразует значение value в восьмибайтовый массив

GetBytes (double value)    и возвращает результат

public static byte [ ]    Преобразует значение value в четырехбайтовый массив

GetBytes (float value)    и возвращает результат

public static byte [ ]    Преобразует значение value в четырехбайтовый массив

GetBytes (int value)    и возвращает результат

public static byte [ ]    Преобразует значение value в восьмибайтовый массив

GetBytes (long value)    и возвращает результат

public static byte [ ]    Преобразует значение value в двухбайтовый массив и

GetBytes (short value)    возвращает результат

public static byte [ ]    Преобразует значение value в четырехбайтовый массив

GetBytes (uint value)    и возвращает результат

public static byte [ ]    Преобразует значение value в восьмибайтовый массив

GetBytes (ulong value)_и возвращает результат_

Метод

Назначение

public static byte[]

Преобразует значение value в двухбайтовый массив

GetBytes(ushort value)

и возвращает результат

public static double

Преобразует значение value в значение типа double

Int64BitsToDouble(long

и возвращает результат

value)

public static bool

Преобразует байт из элемента массива, указываемого по

ToBoolean(byte[] value,

индексу value [startlndex], в эквивалентное значе

int startlndex)

ние типа bool и возвращает результат. Ненулевое значе

public static char

ние преобразуется в логическое значение true, а нулевое — в логическое значение false Преобразует два байта, начиная с элемента массива

ToChar(byte[] value, int

value [ index], в эквивалентное значение типа char

index)

и возвращает результат

public static double

Преобразует восемь байтов, начиная с элемента массива

ToDouble(byte[] value,