1629295407-c61bfe4caba98380ea3e7cdae6295416 (846200), страница 98
Текст из файла (страница 98)
Массивдолжен быть двумернымУстанавливает в вызывающем массиве элемент с индексами[idx1, idx2, idx3] равным значению v. Массив долженбыть трехмернымУстанавливает в вызывающем массиве элемент синдексами, заданными параметром idxs, равным значениюv. Вызывающий массив должен столько размерностей,сколько элементов в массиве idxsСортирует массив а в порядке возрастания.
Массив долженбыть одномернымСортирует массив а в порядке возрастания сиспользованием метода сравнения, заданного параметромcomp. Массив должен быть одномернымГлава 19. Пространство имен System531Окончание табл. 19.12МетодОписаниеpublic static void Sort(Array k,Array v)Сортирует в порядке возрастания два заданных одномерныхмассива. Массив k содержит ключи сортировки, а массив v —значения, связанные с этими ключами. Следовательно, эти двамассива должны содержать пары ключ/значение. Послесортировки элементы обоих массивов расположены в порядкевозрастания ключейСортирует в порядке возрастания два заданных одномерныхмассива с использованием метода сравнения, заданногопараметром comp. Массив k содержит ключи сортировки, амассив v - значения, связанные с этими ключами.Следовательно, эти два массива должны содержать парыключ/значение.
После сортировки элементы обоих массивоврасположены в порядке возрастания ключейСортирует заданный диапазон массива в порядке возрастания.Упомянутый диапазон начинается с элемента а[start] ивключает count элементов. Массив должен быть одномернымpublic static void Sort(Array k,Array v,IComparer comp)public static void Sort(Array a,int start,int count)public static void Sort(Array a,int startint count,IComparer comp)public static void Sort(Array k,Array v,int start,int count)public static void Sort(Array k,Array v,int start,int count,IComparer comp)Сортирует заданный диапазон массива в порядке возрастанияс использованием метода сравнения, заданного параметромcomp.
Упомянутый диапазон начинается с элемента a[start]и включает count элементов. Массив должен бытьодномернымСортирует заданный диапазон двух одномерных массивов впорядке возрастания. В обоих массивах диапазон сортировкиначинается с индекса, переданного в параметре start, ивключает count элементов. Массив k содержит ключисортировки, а массив v — значения, связанные с этимиключами. Следовательно, эти два массива должны содержатьпары ключ/значение.
После сортировки элементы диапазоновобоих массивов расположены в порядке возрастания ключейСортирует заданный диапазон двух одномерных массивов впорядке возрастания с использованием метода сравнения,заданного параметром comp. В обоих массивах диапазонсортировки начинается с индекса, переданного в параметреstart, и включает count элементов. Массив k содержитключи сортировки, а массив v — значения, связанные с этимиключами. Следовательно, эти два массива должны содержатьпары ключ/значение. После сортировки элементы диапазоновобоих массивов расположены в порядке возрастания ключейКласс BitConverterПри написании программ часто приходится преобразовывать данные встроенныхтипов в массив байтов.
Например, некоторые устройства могут принимать целочисленныезначения, но эти значения должны посылаться побайтно. Не менее часто встречается иобратная ситуация. Иногда данные должны быть организованы для приема в видеупорядоченной последовательности байтов, которые нужно преобразовать в значениеодного из встроенных типов. Например, некоторое устройство может выводить целыечисла, посылаемые как поток байтов.
Для решения подобных проблем преобразованияданных в C# и предусмотрен класс BitConverter.532Часть II. Библиотека C#Класс BitConverter содержит методы, представленные в табл. 19.13. В нем такжеопределено следующее поле:public static readonly bool IsLittleEndianЭто поле принимает значение true, если текущая операционная среда обрабатываетсначала слово с младшим (наименее значимым), а затем со старшим (наиболее значимым)байтом. Такой формат обработки (хранения и передачи) называется прямым, т.е. прямымпорядком байтов, (“little-endian” format).
Поле IsLittleEndian принимает значениеfalse, если текущая операционная среда обрабатывает сначала слово со старшим(наиболее значимым), а затем с младшим (наименее значимым) байтом. Такой форматобработки называется обратным (“big-endian” format). Компьютеры, собранные на баземикропроцессора Pentium фирмы Intel, используют формат с прямым порядком байтов.Класс BitConverter является sealed-классом, т.е. не может иметь производныхклассов.Таблица 19.13. Методы, определенные в классе BitConverterМетодОписаниеpublic static longDoubleToInt64Bits(double v)public static byte[] GetBytes(bool v)public static byte[] GetBytes(char v)public static byte[] GetBytes(double v)public static byte[] GetBytes(float v)public static byte[] GetBytes(int v)public static byte[] GetBytes(long v)public static byte[] GetBytes(short v)public static byte[] GetBytes(uint v)public static byte[] GetBytes(ulong v)public static byte[] GetBytes(ushort v)public static doubleInt64BitsToDouble(long v)public static bool ToBoolean(byte[] a,int idx)Преобразует значение параметра v в целочисленноезначение типа long и возвращает результатpublic static char ToChar(byte[] a,int start)Глава 19.
Пространство имен SystemПреобразует значение параметра v в однобайтовыймассив и возвращает результатПреобразует значение параметра v в двубайтовыймассив и возвращает результатПреобразует значение параметра v в восьмибайтовыймассив и возвращает результатПреобразует значение параметра v в четырехбайтовыймассив и возвращает результатПреобразует значение параметра v в четырехбайтовыймассив и возвращает результатПреобразует значение параметра v в восьмибайтовыймассив и возвращает результатПреобразует значение параметра v в двубайтовыймассив и возвращает результатПреобразует значение параметра v в четырехбайтовыймассив и возвращает результатПреобразует значение параметра v в восьмибайтовыймассив и возвращает результатПреобразует значение параметра v в двубайтовыймассив и возвращает результатПреобразует значение параметра v в значение сплавающей точкой типа double и возвращаетрезультатПреобразует элемент a[idx] байтового массива а вего bool-эквивалент и возвращает результат.Ненулевое значение преобразуется в значение true, анулевое — в falseПреобразует два байта, начиная с элемента a[start],в соответствующий char-эквивалент и возвращаетрезультат533Окончание табл.
19.13МетодОписаниеpublic static double ToDouble(byte[] a,int start)public static short ToInt16(byte[] a,int start)public static int ToInt32(byte[] a,int start)public static long ToInt64(byte[] a,int start)public static float ToSingle(byte[] a,int start)public static string ToString(byte[] a)Преобразует восемь байтов, начиная с элементаa[start], в соответствующий double-эквивалент ивозвращает результатПреобразует два байта, начиная с элемента а[start], всоответствующий short-эквивалент и возвращаетрезультатПреобразует четыре байта, начиная с элементаa[start], в соответствующий int-зквивалент ивозвращает результатПреобразует восемь байтов, начиная с элементаа[start], в соответствующий long-эквивалент ивозвращает результатПреобразует четыре байта, начиная с элементаа[start], в соответствующий float-эквивалент ивозвращает результатПреобразует байты массива а в строку.
Строка содержитшестнадцатеричные значения (связанные с этимибайтами), разделенные дефисамиПреобразует байты массива а, начиная с элементаa[start], в строку. Строка содержит шестнадцатеричныезначения (связанные с этими байтами), разделенныедефисамиПреобразует count байт массива а, начиная с элементаa[start], в строку. Строка содержит шестнадцатеричныезначения (связанные с этими байтами), разделенныедефисамиПреобразует два байта, начиная с элемента a[start], всоответствующий ushort-эквивалент и возвращаетрезультатПреобразует четыре байта, начиная с элементаa[start], в соответствующий uint-эквивалент ивозвращает результатПреобразует восемь байтов, начиная с элементаa[start], в соответствующий ulong-эквивалент ивозвращает результатpublic static string ToString(byte[] a,int start)Public static string ToString(byte[] a,int start,int count)public static ushort ToUInt16(byte[] a,int start)public static uint ToUInt32(byte[] a,int start)public static ulong ToUInt64(byte[] a,int start)Генерирование случайных чисел с помощьюкласса RandomЧтобы сгенерировать последовательность псевдослучайных чисел, используйте классRandom.
Последовательности случайных чисел используются во многих ситуациях, в томчисле при моделировании и проведении имитационных экспериментов. Начало такойпоследовательности определяется некоторым начальным числом, которое автоматическипредоставляется классом Random или задается явным образом.В классе Random определены следующие два конструктора:public Random()public Random(int seed)534Часть II. Библиотека C#С помощью первой версии конструктора создается объект класса Random, которыйдля вычисления начального числа последовательности случайных чисел используетсистемное время.