Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Модификатор unsigned




Все компиляторы С и C++ позволяют объявлять некоторые типы как беззнаковые. В настоящее время модификатор unsigned (без знака) можно использовать с четырьмя типами данных: char, short int и long int.

 

Тип Длина (байтов) Диапазон значений
char   от -120 до 127
int   от -32768 до 32767
short   от -32768 до 32767
long   от –2 147 493 648 до2 147 483 647
unsigned char   от 0 до 255
unsigned int   от 0 до 65 535
unsigned short   от 0 до 65 535
unsigned long   от 0 до 4 294 967 295
float   от 3.4Е-38 до 3.4Е+38
double   от 1.7Е-308 до 1.7Е+308
long double   от 1.1Е-4932 до 1.1Е+4982
pointer   (near,based)
pointer   (far.huge)

 

Обычно данный тип служит модификатором одного из трех ранее описанных типов. Поэтому мы можем использовать комбинации ключевых слов unsigned int или unsigned long как обозначения типов. Для указания типа unsigned int достаточно привести только ключевое слово unsigned. Некоторые вычислительные системы никак не обеспечивают аппаратную реализацию типа unsigned long; кроме того, существуют модели микропроцессоров, в которых unsigned - специальный тип фиксированного размера.

Целые беззнаковые константы записываются точно так же, как и обычные целые константы, с тем лишь исключением, что использование знака — запрещено.

Целые переменные без знака описываются и инициализируются совершенно аналогично тому, как это делается в случае обычных целых переменных. Ниже приведено несколько примеров:

 

unsigned int students;

unsigned players;

unsigned short ribs = 6;

 

Применение данного типа при введении в программу некоторой переменной гарантирует, что она никогда не станет отрицательной. Кроме того, если вы имеете дело только с положительными числами, вы сможете воспользоваться тем, что данные указанного типа могут принимать большие значения, чем данные эквивалентного типа со знаком. Обычно это применяется при адресации памяти и организации счетчиков.

 

6.5.2. Числа с плавающей точкой.

В большинстве проектов разработки программного обеспечения оказывается вполне достаточным использовать данные целых типов. Однако в программах вычислительного характера часто применяются числа с плавающей точкой. В языке Си такие данные описываются типом float; они соответствуют типу real в Фортране и Паскале.

Алгебраическая запись числа представляет собой произведение некоторого десятичного числа на степень, основание которой равно десяти. Ниже приведено несколько примеров.

 

Число Алгебраическая запись Запись для ввода в машину
1 000 000 000 1,0*109 1.0е9
123 000 1,23*105 1.23е5
322.56 3,2256*102 3.2256е2
0.000056 5,6*10-5 5.6е-5

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

Обычно для размещения в памяти числа с плавающей точкой отводится 32 бита — 8 бит для представления порядка и знака и 24 бита — для мантиссы (т. е. коэффициента при степени десяти). Важным фактом, который вам необходимо знать, является то, что такой способ дает возможность представлять числа с точностью до 6—7 десятичных цифр в диапазоне ±(1037 — 1038). Это может оказаться удобным, если вам понадобится обрабатывать числа того же порядка, что масса Солнца (2.0еЗ0 кг) или заряд протона (1.6е—19 Кл). (Многим нравится использовать подобные числа.)

Формирование представления числа с плавающей точкой состоит в его разбиении на дробную часть и порядок; затем обе части раздельно помещаются в память. Поэтому число 7.00 из вышеприведенного списка нельзя поместить в память тем же способом, что и целое число 7, хотя оба имеют одно и то же значение. В десятичной записи (точно так же как и в двоичной) число «7.0» можно было бы записать в виде «0.7Е1»; тогда «0.7» будет дробной частью, а «1» — порядком. Для размещения чисел в памяти машины будут, конечно, использоваться двоичные числа и степени двойки вместо степеней десяти. Здесь мы остановимся лишь на различиях, связанных с практическим использованием чисел этих двух типов.

1. Целые числа не имеют дробной части, в то время как числа с плавающей точкой могут представлять как целые, так и дробные числа.

2. Числа с плавающей точкой дают возможность представлять величины из более широкого диапазона, чем целые.

3. При некоторых арифметических операциях, например при вычитании одного большого числа из другого, использование чисел с плавающей точкой приводит к большей потере точности.

4. Операции над числами с плавающей точкой выполняются, как правило, медленнее, чем операции над целыми числами. Однако сейчас уже появились микропроцессоры, специально ориентированные на обработку чисел с плавающей точкой, и в них эти операции выполняются довольно быстро.

 

 

 

6.5.3. Описание переменных с плавающей точкой.

Переменные с плавающей точкой описываются и инициализируются точно таким же образом, что и переменные целого типа. Ниже приведено несколько примеров:

 

float noah, jonah;

double trouble;

float planck = 6.63e-34;

 

Константы с плавающей точкой

Правила языка Си допускают несколько способов записи констант с плавающей точкой. Наиболее общая форма записи константы — это последовательность десятичных цифр со знаком, включающая в себя десятичную точку, затем символ е или Е и показатель степени по основанию 10 со знаком. Вот два примера:

 

-1.56Е+12 2.87е-3

 

Знак + можно не писать. Разрешается также опускать либо десятичную точку, либо экспоненциальную часть, но не одновременно. Кроме того, можно не писать дробную или целую часть, но не обе сразу. Ниже приведено еще несколько правильно записанных констант с плавающей точкой:

 

3.14159.2 4е16.8Е-5 100.

 

Использовать пробелы при записи констант запрещается

 

1.56Е+ 12 — НЕПРАВИЛЬНО

 

6.5.4. Перечисляемый тип данных (enum).

При объявлении переменной перечисляемого типа с ней связывается набор именованных целочисленных констант, называемых перечисляемыми константами. В каждый момент времени переменная может иметь значение одной из констант, и к ней можно обращаться по имени. К примеру, следующее описание создает перечисляемый тип air_supply, перечисляемые константы EMPTY, USEABLE и FULL, и перечисляемую переменную instructor_tank:

 

enum air_supply {EMPTY,

USEABLE,

FULL=5 } instructor_tank;

 

Все константы и переменные имеют тип int, каждая константа автоматически получает по умолчанию некоторое значение, если не указывается какое-либо другое. В предыдущем примере константа EMPTY имеет по умолчанию целое значение ноль, так как она — первая в списке и не переопределена особо. Значение константы USEABLE равно 1, поскольку она следует непосредственно за константой с нулевым значением. Константа FULL инициализирована отдельно и имеет значение 5; если бы вслед за ней в списке была еще одна константа, эта новая константа была бы равна 6.

После создания типа air_supply вы можете в дальнейшем описать другую переменную, student_tank, следующим образом:

 

enum air_supply student_tank;

 

После этого оператора можно выполнить следующие:

 

instructor_tank = FULL;

student_tank = EMPTY;

 

При этом переменная instructor_tank получит значение 5, а переменная student_tank — значение 0.

 

ПРИМЕЧАНИЕ.

При описании дополнительных перечисляемых переменных в C++ не обязательно повторять ключевое слово enum. В компиляторе C++ допустимы оба варианта записи.

 

Часто делают ошибку, считая air_supply переменной. Это — "тип" данных, который можно использовать в дальнейшем для создания дополнительных перечисляемых переменных, аналогичных instructor_tank или student_tank.

Так как instructor_tank — название перечисляемой переменной типа air_supply, instructor_tank может использоваться в левой части оператора присваивания и получать значение. Это и происходит при явном присваивании переменной значения перечисляемой константы FULL. EMPTY, USEABLE и FULL — имена констант; это не переменные, и их значения не могут меняться.

 

6.5.5. Модификаторы доступа.

Модификаторы const и volatile являются новыми в С и C++. Они были добавлены в стандарте ANSI С для того, чтобы различать переменные, которые никогда не изменяются (const), и переменные, значение которых может измениться непредсказуемо (volatile).

 




Поделиться с друзьями:


Дата добавления: 2015-01-03; Просмотров: 1609; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.023 сек.