ТОП 10:

Вещественные типы данных (с плавающей точкой).



В С++ существуют два типа данных с плавающей точкой: float и doudle. Типы данных с плавающей точкой предназначены для хранения чисел с плавающей точкой. Типы данных float и double могут хранить как положительные, так и отрицательные числа с плавающей точкой. У типа данных float размер занимаемой памяти в два раза меньше, чем у типа данных double, а значит и диапазон принимаемых значений тоже меньше. Если тип данных float объявить с приставкой long, то диапазон принимаемых значений станет равен диапазону принимаемых значений типа данных double. В основном, типы данных с плавающей точкой нужны для решения задач с высокой точностью вычислений, например, операции с деньгами.


21 Преобразование типов (явное и неявное). Приведение типа

Приведе́ние ти́па — преобразование значения переменной одного типа в значение другого типа. При явном приведении указывается тип переменной, к которому необходимо преобразовать исходную переменную. При неявном приведении преобразование происходит автоматически, по правилам, заложенным в данном языке программирования. Также в языке могут быть заданы специальные функции для приведения. Неявное приведение: Само приведение происходит как во время присваивания значения переменной, так и при операциях сравнения, вычисления выражения. При использовании в выражении несколько различных типов значения одного или нескольких подтипов может быть осуществлено преобразование к более общему типу (супертипу), с большим диапазоном возможных значений. В языке C:

double d; // вещественный тип

long l; // целый тип

int i; // целый тип

if (d > i) d = i;

if (i > l) l = i;

if (d == l) d *= 2;

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

Явное приведение типа: Для явного приведения типов некоторой переменной перед ней следует указать в круглых скобках имя нового типа, например:

int X;

int Y = 200;

char C = 30;

X = (int)C * 10 + Y; //переменная С приведена к типу int.

Грубых ошибок в данном примере от автоматического приведения типов не произойдет, так как переменная C, которая имеет тип char будет приведена к типу int, так как здесь идет речь о «повышении» типа переменной к старшему в выражении(переменная С перед присваиванием неявно приводится к типу переменной Y). Но возможен один нюанс - в зав-сти от машинной реализации типа char при преобразовании char в int может получиться отрицательное число, потому рекомендуется использовать явное преобразование, а если все-таки есть преобразования типа char в int, char объявлять как беззнаковый(unsigned char).

22 Использование модификаторов при декларации типов данных.Ключев слова int, float, char ит.д. наз конечн атрибутами декларации объектов программы. При декларации т.н. производных объектов используют еще дополн– промежуточн атрибуты, «модификаторы». К символам модификации текущего типа относят: – символ * перед идентификатором, обозначает декларацию указателя на объект исходного типа; – символы [ ] после идентификатора объекта – декларация массива объектов; – символы ( ) после идентификатора объекта – декларация функции (правые промежуточные атрибуты).

Допускается использование более одного модификатора типа с учетом следующих правил:

1) чем ближе модификатор к ID объекта,тем выше его приоритет;2)при одинаковом расстоян от идентификатора объекта модификаторы [ ] и ( ) обладают приоритетом перед атрибутом звезды*;3)доп круглые скобки позвол изменить приоритет объединяемых ими эл-тов описа-ния; 4)квадратн и кругл скобки, имеющие одинаков приоритет, рассматрив слева направо.

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

Примеры декларации объектов с конечным атрибутом int: int a; – переменная типа int;

int a[5]; – массив из пяти элементов типа int; int *a; – указатель на объект типа int;

int **a; – указатель на указатель на объект типа int; int a(void); – функция без параметров, возвращающая значение типа int; int *a(void); – функция без параметров, возвращающая указатель на элемент типа int; int *a(void)[6]; – функция без параметров, возвращающая указатель на массив элементов. Существуют и недопустимые последовательности промежуточных атрибутов, например, массив не может состоять из функций, а функция не может возвращать массив или другую функцию.

23 Системы счисления. Кодовая таблица ASCII.Разнообразные системы счисления, кот сущ-ли раньше и кот исп-ся в наше время, делят на непозицион и позицион. Знаки, исп-зуемые при записи чисел, наз цифрами. В непозиц СС от положения цифры в записи числа не завис велич, кот она обознач. Примером непозиц СС явл римская система,I V X L C D M 1 5 10 50 100 500 1000. Например, VI = 5 + 1 = 6, а IX = 10 - 1 = 9. В позиц СС величина, обозначаемая цифрой в записи числа, зависит от ее позиции. Кол-во используемых цифр назыв основанием СС. Место каждой цифры в числе называется позицией. Первая известная нам система, основанная на позиционном принципе - шестидесятeричная вавилонская. Цифры в ней были 2х видов, одним из кот обозначались единицы, другим - десятки. Но наиб ценность для нас имеет индо-арабская десятичная система. Они первыми использ 0 для указания позицион значимости велич в строке цифр. Эта система получила название десятичной, так как в ней 10цифр. Для того чтоб лучше понять различие позицион и непозиц СС, рассмотрим пример сравнения двух чисел. В позицион СС сравнение 2х чисел происходит так: в рассматриваемых числах слева направо сравниваются цифры, стоящие в одинаковых позициях. Большая цифра соответствует большему значению числа. Например, для чисел 123 и 234, 1 меньше 2, поэтому число 234 больше, чем число 123. В непозицион СС это правило не действует. Примером этого может служить сравнение двух чисел IX и VI. Несмотря на то, что I меньше, чем V, число IX больше, чем число VI. ASCII — American Standard Code for Information Interchange — американский стандартный код для обмена информацией. ASCII представляет собой 8-битную кодировку для представления десятичных цифр, латинского и национального алфавитов, знаков препинания и управляющих символов. Нижнюю половину кодовой таблицы (0 — 127) занимают символы US-ASCII, а верхнюю (128 — 255) — разные другие нужные символы. Слово ASCII чаще употребляется в женском роде.

Константы. Целые константы. Константы с плавающей точкой. Символьные константы. Строки. NULL.Константы — это перечисление величин в программе. В языке СИ можно выделить четыре вида констант: целые константы, константы с плавающей запятой, символьные константы и строковые литералы. Целая константа — это десятичное, восьмеричное или шестнадцатеричное число, представляющее целую величину в одной из известных форм: десятичной, восьмеричной или шестнадцатеричной. Десятичная константа включает в себя одну или несколько десятичных цифр, при этом первая цифра не должна быть нулем (иначе число будет воспринято как восьмеричное). Восьмеричная константа включает в себя обяза- тельный нуль и одну или несколько восьмеричных цифр (среди цифр не должно быть восьмерки и девятки, так как данные цифры не входят в восьмеричную систему счисления). Шестнадцатеричная константа начинается с непременной последовательности 0х или 0Х и включает в себя одну или не-сколько шестнадцатеричных цифр, которые являются набором цифр шестнадцатеричной системы счисления: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Если необходимо образовать отрицательную целую константу, то применяется знак «–» перед записью константы (который называется унарным минусом). К примеру: –0x3A, –098, –36. Любой целой константе присваивается тип, который определяет преобразования, которые должны быть выполнены, если константа применяется в выражениях. Тип константы определяется так: 1) десятичные константы — это величины со знаком, и им присваивается тип int (целая) или long (длинная целая) по значению константы. Если константа меньше 32 768, то ее тип — int, иначе — long; 2) восьмеричным и шестнадцатеричным константам присваивается тип int, unsigned int (беззнаковая целая), long или unsigned long по величине константы. Для того чтобы каждую целую константу определить типом long, в конце константы ставится буква «l» или «L». Пример: 2l, 9l, 138L, 0905L, OX2911L. Константа с плавающей точкой — десятичное число, которое представлено в виде действительной величины с десятичной точкой или экспонентой. Формат записывается так: [цифры].[цифры] [Е|e [+|–] цифры]. Число с плавающей точкой включает себя целую и дробную части и (или) экспоненты. Константы с плавающей точкой — это положительные величины удвоенной точности, тип которых double.

NULL в языках программирования Си и C++ — макрос, объявленный в заголовочном файле stddef.h (и других заголовочных файлах). Значением этого макроса является зависящая от реализации константа нулевого указателя (англ. null pointer constant). Константа нулевого указателя — это целочисленное константное выражение со значением 0, или (только в Си) такое же выражение, но приведённое к типу void *. Константа нулевого указателя, приведённая к любому типу указателей, является нулевым указателем. Гарантируется, что нулевой указатель не равен указателю на любой объект (в широком смысле слова, любые данные) или функцию. Гарантируется, что любые два нулевых указателя равны между собой. Разыменовывание нулевого указателя является операцией с неопределённым поведением.







Последнее изменение этой страницы: 2016-08-14; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 35.172.216.157 (0.006 с.)