Logo GenDocs.ru


Поиск по сайту:  


Лекции по информатике - файл 1.doc


Лекции по информатике
скачать (1270.5 kb.)

Доступные файлы (1):

1.doc1271kb.16.11.2011 02:47скачать

содержание

1.doc

1   2   3   4   5   6   7   8   9   ...   15
Реклама MarketGid:
^

Базовые типы данных


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

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

  • внутреннее представление данных в памяти компьютера;

  • множество значений, которые могут принимать величины этого типа;

  • операции и функции, которые можно применять к величинам этого типа.

Основные (стандартные) типы данных часто называют арифметическими, по­скольку их можно использовать в арифметических операциях. Для описания ос­новных типов определены следующие ключевые слова:

int (целый);

char (символьный);

wchar_t (расширенный символьный);

bool (логический);

float (вещественный);

double (вещественный с двойной точностью).

Первые четыре типа называют целочисленными (целыми), последние два — ти­пами с плавающей точкой. Код, который формирует компилятор для обработки целых величин, отличается от кода для величин с плавающей точкой.

Существует четыре спецификатора типа, уточняющих внутреннее представле­ние и диапазон значений стандартных типов:

short (короткий);

long (длинный);

signed (знаковый);

unsigned (беззнаковый).


Целочисленные величины

Если вы хотите производить математические операции, то должны использовать числовой тип данных. Язык Си имеет несколько типов числовых данных в зависимости от значения, которое может быть им присвоено, и занимаемого объема памяти.

Целые числа (int, от английского integer)— это числа, не имеющие дробной части. Их значение может быть положительным, отрицательным или нулевым, но никогда не имеет в своем составе знаков после точки. В языке Си есть простая аксиома, которая гласит: «Используйте для подсчетов целые числа». Используйте целые числа всегда, когда есть возможность представить некое значение в виде целого числа, например, при подсчете количества повторов определенного события.

Каждый элемент целочисленных данных занимает в памяти столько же места, сколько два элемента символьных, независимо от величины самого числа (и число 2, и число 2000 требуют для хранения одинакового объема памяти). Но для того чтобы занимаемое место не превышало двух элементов памяти, величина целочисленных данных в языке Си ограничена. К целочисленным данным (собственно тип int) относятся величины, значение которых находится в промежутке между –32768 и +32767. Величины, значение которых выходит за эти пределы, требуют для хранения больше двух элементов памяти.

Для того чтобы обеспечить возможность работы с числами любой величины, в большинстве компиляторов Си определено несколько типов целочисленных данных. Границы для разных типов могут различаться в зависимости от конкретного компилятора.


short int

короткие целые числа: положительные величины от 0 до 255

int

целые числа: величины от –32768 до +32767

long int

длинные целые числа: величины от –2147483648 до +2147483647

unsigned long

длинные целые числа без знака: положительные величины от 0 до 4294967295

По умолчанию все целочисленные типы считаются знаковыми, то есть специфи­катор signed можно опускать.

Константам, встречающимся в программе, приписывается тот или иной тип в со­ответствии с их видом. Если этот тип по каким-либо причинам не устраивает программиста, он может явно указать требуемый тип с помощью суффиксов L, 1 (long) и U, u (unsigned). Например, константа 321 будет иметь тип long и зани­мать 4 байта. Можно использовать суффиксы L и U одновременно, например, 0x22UL или 05lu.

Типы short int, long int, signed int и unsigned int можно сокращать до short, long, signed, и unsigned соответственно.


^ Символьные данные

Под величину символьного типа отводится количество байт, достаточное для размещения любого символа из набора символов для данного компьютера, что и обусловило название типа. Как правило, это 1 байт. Тип char, как и другие целые типы, может быть со знаком или без знака. В величинах со знаком можно хра­нить значения в диапазоне от -128 до 127. При использовании спецификатора unsigned значения могут находиться в пределах от 0 до 255. Этого достаточно для хранения любого символа из 256-символьного набора ASCII. Величины типа char применяются также для хранения целых чисел, не превышающих границы указанных диапазонов. Однако Си проводит различия между символом «1» и числом 1. Как символ единица не может использоваться в математических операциях, поскольку она не рассматривается в этом случае как математическая величина. Как число единица участвует в вычислениях, при этом, как вы скоро увидите, для хранения символа «1» Си отводит объем памяти вполовину меньший, чем для хранения числа 1.


^ Расширенный символьный тип (wchar_t)

Тип wchar_t предназначен для работы с набором символов, для кодировки кото­рых недостаточно 1 байта, например, Unicode. Размер этого типа зависит от реа­лизации; как правило, он соответствует типу short. Строковые константы типа wchar_t записываются с префиксом L, например, L"Gates".


^ Логический тип (bool)

Величины логического типа могут принимать только значения true и false, яв­ляющиеся зарезервированными словами. Внутренняя форма представления зна­чения false - 0 (нуль). Любое другое значение интерпретируется как true. При преобразовании к целому типу true имеет значение 1.


^ Вещественные числа

Числа, которые могут содержать десятичную часть (вещественные), называются числами с плавающей точкой (floating-point values). Для работы с ними в языке Си используется тип данных с плавающей точкой (float). Так как числа с плавающей точкой могут быть чрезвычайно маленькими или большими, для их записи часто используют экспоненциальную форму, например, значение числа с плавающей точкой может равняться 3.4е+38. Расшифровать это можно следующим образом: «передвинуть точку вправо на 38 пунктов, добавив соответствующее количество нулей». Существуют дополнительные типы данных для работы в очень широких пределах величин:


float

величины от 3.4Е–38 до 3.4Е+38

double

величины от 1.7Е–308 до 1.7Е+308

long double

величины от 3.4Е–4932 до 1.1Е+4932


Тип данных с плавающей точкой имеет предел точности, диапазон которого зависит от компилятора. Например, число 6.12345678912345 в пределах допустимого диапазона для чисел типа float может быть записано компьютером только как 6.12345. Этот тип, как принято говорить, является типом с одинарной точностью, что означает, что точность его ограничена пятью или шестью знаками после точки. Тип double принято называть типом с двойной точностью, он имеет 15–16 знаков после точки.

Для записи данных с одинарной точностью резервируется четыре элемента памяти; двойная точность требует резервирования восьми, повышенная (long double)— десяти.


^ Почему надо использовать целые числа?

В обычной жизни, не связанной с программированием, как правило, никто не обращает внимания на различия между целыми и вещественными числами. Производя подсчеты с помощью калькулятора, просто нажимают соответствующие клавиши и независимо от того, есть у числа десятичная часть или нет, вводят его одинаково— на расчеты это не влияет. Так почему же для языка Си так важно это различие? Почему существует так много разных типов числовых данных? В конце концов, число— оно и есть число!

Частично причина кроется в необходимости резервирования памяти для хранения информации. Если компьютеру не хватает памяти для выполнения вашей программы, он прекращает работу, а память стоит денег. Хорошие программисты стараются экономить память. Чем меньше ее требуется для выполнения программы, тем лучше. Использование типа int вместо float и типа char вместо строк помогает в этом.

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

Начиная писать программу, всегда выбирайте тот тип данных, который наилучшим образом отвечает вашей непосредственной задаче. Но возьмите себе за правило использовать целые числа везде, где это возможно, то есть всякий раз, когда добавление десятичной части не является совершенно необходимым.
1   2   3   4   5   6   7   8   9   ...   15

Реклама:





Скачать файл (1270.5 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru