Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
933.3 Кб
Скачать

3.1.1. Целые

Это семейство типов, значения которых являются целыми. Типы различаются диапазоном значений и объемом выделяемой под элемент памяти.

Память в

байтах

Память в

разрядах

Диапазон

Тип

Basic

Тип

C

1

8

-128 – 127(27-1)

SByte

char

2

16

-32768 – 32767(215-1)

Short

short

4

32

-2147483648 – 2147483647(231-1)

Integer

int | long

8

64

-263 – 263-1

Long

long long

Замечание 1. В языках C и C++ для всех целых типов существует модификатор unsigned, в рассматриваемых версиях языка Basicтипы Byte, UShort, UInteger, ULong, которые запрещают соответствующим типам принимать отрицательные значения. При этом изменяется диапазон представления значений.

unsigned char, Byte 0 – 255

unsigned short, UShort 0 – 65535

unsigned [int] | unsigned long, UInteger 0 - 4294967295

ULong  0 – 264-1

В качестве литералов в обоих языках могут употребляться числа в 10-чной, 8-чной и 16-чной системах счисления. Признак 8-чного литерала в языке Basic – префикс &o (буква "o”), в языке C0 (цифра "0"), 16-ного: Basic - &h, C0{x|X}.

Пример.

-1 2345 9999999999  10

&o7777 Basic 07777 C  8

&hab Basic 0xab 0Xab C  16

3.1.2. Данные с плавающей точкой

Это семейство типов, значения которых являются вещественными (дробными). Типы различаются диапазоном значений и объемом выделяемой под элемент памяти.

Память в

байтах

Память в

разрядах

Диапазон

Точность представления (число разрядов мантиссы)

Тип

Basic

Тип

C

4

32

|x|<3,4...1038

6-7

Single

float

8

64

|x|<1,8...10308

16

Double

double

8

64

16

long double

Замечание. Типы double и long double в изучаемой версии языка C не отличаются. Тип long double введен для совместимости со стандартом языка, поэтому его употреблять не рекомендуется.

Литералы имеют 2 формы записи:

- обычную:

[+|-]<целая часть>.<дробная часть>

и экспоненциальную или показательную:

<мантисса>e<степень>,

где мантисса – это целое число или число с плавающей точкой в обычной форме, e означает 10 в степени (регистр не важен), степень – целое число.

Все литералы с плавающей точкой относятся к типу double.

Пример.

-2.3 5e-15 -2.245E12 0.0002 .0002Basic–>0.0002 среда корректирует)

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

Несмотря на различные формы записи литералов (внешнего представления) данные этого типа хранятся в памяти компьютера в форме с плавающей точкой (мантисса, порядок), отсюда и произошло название типа.

Замечание 1. В языке C разделитель между целой и дробной частью числа или мантиссы в виде десятичной точки может отсутствовать только при наличии степени (экспоненты). Если отсутствуют и точка, и степень, это означает литерал целого типа.

Замечание 2. Basic. Весьма важно!!! Во многих странах, в том числе и в нашей, в качестве десятичного разделителя используется символ ",". Более того, многие программы, например Microsoft Excel, используют в этом качестве установки ОС, которые могут быть изменены. В результате при вводе данных с клавиатуры или выводе их на экран (печать) используются установки ОС, однако при задании литералов в тексте программы необходимо употреблять в качестве разделителя точку. Эти проблемы также возникнут при работе с датами, временем, денежными единицами.

Замечание 3. Basic. Все числовые типы данных имеют поля, содержащие минимальное и максимальное значения для каждого типа. Формат обращения к ним:

<имя типа>.{MinValue | MaxValue}

Пример.

Single.MaxValue Double.MinValue Ushort.MinValue

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]