|
Программирование >> Обработка исключительных ситуаций
/ты данных шые, с которыми работает программа, хранятся в оперативной памяти. Есте-енно, что компилятору необходимо точно знать, сколько места они занимают, : именно закодированы и какие действия с ними можно выполнять. Все это ается при описании данных с помощью типа. г данных однозначно определяет: внутреннее представление данных, а следовательно, и множество их возможных значений; допустимые действия над данными (операции и функции). пример, целые и вещественные числа, даже если они занимают одинаковый ьем памяти, имеют совершенно разные диапазоны возможных значений; целые ела можно умножать друг на друга, а, например, символы - нельзя. ждое выражение в программе имеет определенный тип. Величин, не имеющих какого типа, не существует. Компилятор использует информацию о типе при оверке допустимости описанных в программе действий. 1мять, в которой хранятся данные во время выполнения программы, делится две области: стек (stack) и динамическая область, или хип (heap) . Стек ис-льзуется для хранения величин, память под которые выделяет компилятор, в динамической области память резервируется и освобождается во время вы-шнения программы с помощью специальных команд. Основным местом для мнения данных в С# является хип. лассификация типов юбая информация легче усваивается, если она разложена по полочкам . По-ому, прежде чем перейти к изучению конкретных типов языка С#, рассмотрим i классификацию. Типы можно классифицировать по разным признакам. ели принять за основу строение элемента, все типы можно разделить на простые ie имеют внутренней структуры) и структурированные (состоят из элементов эугих типов). По своему создателю типы можно разделить на встроенные В русскоязычной литературе для этого термина часто используют романтичный синоним куча . А в куче встречается мусор , что означает не то, что вы могли подумать, а неиспользуемые величины - впрочем, пока мы оставим мусор без внимания! Me того, в языке есть еще одна разновидность комментариев, которые начи-!тся с трех подряд идущих символов косой черты ( /). Они предназначены формирования документации к программе в формате XML. Компилятор лекает эти комментарии из программы, проверяет их соответствие правилам шисывает их в отдельный файл. Правила задания комментариев этого вида рассмотрим в главе 15. (стандартные) и определяемые программистом (рис. 2.1). Для данных статического типа память выделяется в момент объявления, при этом ее требуемый объем известен. Для данных динамического типа размер данных в момент объявления может быть неизвестен, и память под них выделяется по запросу в процессе выполнения программы. Рис. 2.1 . Различные классификации типов данных С# Встроенные типы Встроенные типы не требуют предварительного определения. Для каждого типа существует ключевое слово, которое используется при описании переменных, констант и т. д. Если же программист определяет собственный тип данных, он описывает его характеристики и сам дает ему имя, которое затем применяется точно так же, как имена стандартных типов. Описание собственного типа данных должно включать всю информацию, необходимую для его использования, а именно внутреннее представление и допустимые действия. Встроенные типы С# приведены в табл. 2.5. Они однозначно соответствуют стандартным классам библиотеки .NET, определенным в пространстве имен System Как видно из таблицы, существуют несколько вариантов представления целы? и вещественных величин. Программист выбирает тип каждой величины, исполь зуемой в программе, с учетом необходимого ему диапазона и точности представ ления данных. Целые типы, а также символьный, вещественные и финансовый типы можн объединить под названием арифметических типов. Внутреннее представление величины целого типа - целое число в двоично коде. В знаковых типах старший бит числа интерпретируется как знаковый (О положительное число, 1 - отрицательное). Отрицательные числа чаще все представляются в так называемом дополнительном коде. Для преобразован! числа в дополнительный код все разряды числа, за исключением знаковог иинертируются, затем к числу прибавляется единица, и знаковому биту то/ присваивается единица. Беззнаковые типы позволяют представлять тольк положительные числа, поскольку старший разряд рассматривается как част! кода числа. i. Встроенные типы С# Ключевое Тип .NET слово Диапазон значений Описание Размер, битов тип bool [ sbyte byte short ushort int uint long ulong й char ые1 float double й decimal string object Boolean SByte Byte Intl6 UIntl6 Int32 UInt32 Int64 UInt64 Char Single Double Decimal String Object true, false От-128 до 127 От 0 до 255 От -32 768 до 32 767 От 0 до 65 535 От -2 109 до 2 109 От 0 до 4 10 От -9 х 1018 до 9 1018 От 0 до 18 1018 От U+0000 до U+ffff 10 45 От 1.5 до 3.4 От 5.0 до 1.7 От 1.0 до 7.9 1038 10324 10308 10~28 1028 Длина ограничена объемом доступной памяти Можно хранить все что угодно Со знаком Без знака Со знаком Без знака Со знаком Без знака Со знаком Без знака Unicode-символ 7 цифр 64 16 15-16 цифр 64 28-29 цифр 128 Строка из Unicode-символов Всеобщий предок ЧИЕ- под величину отведено я двоичных разрядов, то в ней можно представить 2 1чных сочетаний нулей и единиц. Если старший бит отведен под знак, то диа- 1 возможных значений величины - [-2 ,2- - 1], а если все разряды исполь-ся для представления значения, диапазон смещается в область положительных 1 и равен [0, 2 - 1] (см. табл. 2.5). ные типы, или типы данных с плавающей точкой, хранятся в памяти а иначе, чем целочисленные. Внутреннее представление вещественного гит из двух частей - мантиссы и порядка, каждая часть имеет знак. Дли-ы определяет точность числа, а длина порядка - его диапазон. В первом ши это можно представить себе так: например, для числа 0,381 10 ственных и финансового типов в таблице приведены абсолютные величины ных и максимальных значений.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |