C# 4.0: полное руководство | страница 37




Таблица. 3.1. Типы значений в C#


>Тип        >Значение


>bool       >Логический, предоставляет два значения: “истина” или “ложь”

>byte       >8-разрядный целочисленный без знака

>char       >Символьный

>decimal    >Десятичный (для финансовых расчетов)

>double     >С плавающей точкой двойной точности

>float      >С плавающей точкой одинарной точности

>int        >Целочисленный

>long       >Длинный целочисленный

>sbyte      >8-разрядный целочисленный со знаком

>short      >Короткий целочисленный

>uint       >Целочисленный без знака

>ulong      >Длинный целочисленный без знака

>ushort     >Короткий целочисленный без знака


В C# строго определены пределы и характер действия каждого типа значения. Исходя из требований к переносимости программ, C# не допускает в этом отношении никаких компромиссов. Например, тип int должен быть одинаковым во всех средах выполнения. Но в этом случае отпадает необходимость переписывать код для конкретной платформы. И хотя строгое определение размерности типов значений может стать причиной незначительного падения производительности в некоторых средах, эта мера необходима для достижения переносимости программ.

----------------------------------

ПРИМЕЧАНИЕ

Помимо простыхтипов, в C# определены еще три категории типов значений: перечисления, структуры и обнуляемые типы. Все они рассматриваются далее в этой книге.

----------------------------------


Целочисленные типы

В C# определены девять целочисленных типов: >char, byte, sbyte, short, ushort, int, uint, long и >ulong. Но тип char применяется, главным образом, для представления символов и поэтому рассматривается далее в этой главе. Остальные восемь целочисленных типов предназначены для числовых расчетов. Ниже представлены их диапазон представления чисел и разрядность в битах.


>Тип    >Разр.(бит) >Диапазон представления чисел


>byte   >8          >0 - 255

>sbyte  >8          >-128 - +127

>short  >16         >-32768 - +32767

>ushort >16         >0 - 65535

>int    >32         >-2147483648 - +2147483647

>uint   >32         >0 - 4294967295

>long   >64         >-9223372036854775808 - +9223372036854775807

>ulong  >64         >0 - 18446744073709551615


Как следует из приведенной выше таблицы, в C# определены оба варианта различных целочисленных типов: со знаком и без знака. Целочисленные типы со знаком отличаются от аналогичных типов без знака способом интерпретации старшего разряда целого числа. Так, если в программе указано целочисленное значение со знаком, то компилятор C# сгенерирует код, в котором старший разряд целого числа используется в качестве