Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 3. Типы данных, операции.doc
Скачиваний:
5
Добавлен:
02.05.2019
Размер:
211.97 Кб
Скачать

Лекция 3. Типы данных с#. Переменные, операции, выражения

Тип данных однозначно определяет:

  • Внутреннее представление данных – множество их значений

  • Допустимые действия над данными (операции и функции)

Каждое выражение в программе имеет определенный тип. Память, в которой хранятся данные во время выполнения программы, делятся на две области – стек и динамическая память. Стек используется для хранения величин, память под которые выделяет компилятор. В динамической области памяти (heap- куча) память резервируется и освобождается во время выполнения программы с помощью специальных команд самим программистом.

Классификация типов данных в С# представлена на рисунке 3.1

Рисунок 3.1 – Классификация типов данных в С# по различным признакам

Встроенные типы

Встроенные типы приведены в таблице 3.1. Они однозначно соответствуют стандартным классам библиотеки .NET определенным в пространстве имен System.

Как видно из таблицы, существует несколько вариантов представления целых и вещественных величин.

Внутреннее представление величины целого типа – целое число в двоичном коде. В знаковых типах старший бит числа интерпретируется как знаковый (0-положительное число, 1-отрицательное). Отрицательные числа чаще всего представляются в дополнительном коде – все разряды числа, кроме знакового разряда, инвертируются, затем к числу прибавляется единица, и знаковому биту присваивается единица. Беззнаковые типы позволяют представлять только положительные числа, поскольку старший разряд рассматривается как часть кода числа.

Вещественные типы хранятся в памяти иначе, чем целочисленные. Внутреннее представление величины вещественного типа состоит из двух частей – мантиссы и порядка, каждая часть имеет знак. Длина мантиссы определяет точность числа, а длина порядка – его диапазон. Например, число 0,381*10^4 хранятся цифры мантиссы 381 и порядок 4, для числа 560,3*10^2 – мантисса 5603 и порядок 5.

Тип decimal предназначен для денежных вычислений, в которых критичны ошибки округления. Данные тип не относится к вещественным типам, у них разное внутреннее представление. Величины денежного типа нельзя использовать в одном выражении с вещественными буз явного преобразования типа.

Любой встроенный тип языка С# соответствует стандартному классу библиотеки .NET. Везде, где используется имя встроенного типа его можно заменить именем класса библиотеки System. Это значит, что у встроенных типов есть методы и поля. Например:

double.MaxValue (System.Double.MaxValue) – максимальное значение числа типа double.

uint.MinValue (System.UInt32.MinValue) – минимальное значение числа типа uint.

Таблица 3.1 – Встроенные типы языка С#

Название

Ключевое слово

Тип .NET

Диапазон

Описание

Размер, битов

Логический тип

bool

Boolean

true, false

Целые типы

sbyte

SByte

-128..127

Со знаком

8

byte

Byte

0..255

Без знака

8

short

Int16

-32768..32767

Со знаком

16

ushort

UInt16

0..65535

Без знака

16

int

Int32

-2*10^9..2*10^9

Со знаком

32

uint

UInt32

0..4*10^9

Без знака

32

long

Int64

-9*10^18..9*10^18

Со знаком

64

ulong

UInt64

0..18*10^18

Без знака

64

Символьный тип

char

Char

U+0000..U+ffff

Unicode-символ

16

Вещественные типы

float

Single

1.5*10^-45..3.4*10^38

7 цифр

32

double

Double

5.0*10^-324..1.7*10^308

15-16 цифр

64

Финансовый тип

decimal

Decimal

1.0*10^-28..7.9*10^28

28-29 цифр

128

Строковый тип

string

String

Длина ограничена объемом доступной памяти

Строка из Unicode-символов

Тип object

object

Object

Можно хранить все что угодно

Всеобщий порядок