Программирование >>  Процедурные приложения 

1 ... 21 22 23 [ 24 ] 25 26 27 ... 150


Числа с плавающей запятой одинарной точности (тип данных float) могут представляться как в фиксированном формате, например число л (3,14159), так и в экспоненциальном (7,56310). Диапазон значений - +/-3,4Е-38-3,4Е+38, размерность - 32 бита, т.е. 4 байта, или 2 слова.

Числа с плавающей запятой двойной точности (тип данных double) имеют диапазон значений от +/-1,7Е-308 до +/-1,7Е+308 и размерность 64 бита, т.е. 8 байтов, или 4 слова. Ранее существовал тип longdouble с размерностью 80 бит и диапазоном от +/-1,18Е-4932 до +/-1Д8Е+4932. В новых 32-разрядных версиях компиляторов он эквивалентен типу double и поддерживается из соображений обратной совместимости с написанными ранее приложениями.

Перечисления представляются конечным набором именованных констант различных типов.

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

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

Переменные нового типа данных bool в C++ могут содержать только одну из двух констант: true или false.

Символы

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

abcdefghijklmnopqrstuvwxyz

26 прописных букв латинского алфавита:

ABCDEFGHIJKLMNOPQRSTUVWXYZ.

десяти цифр:

0123456789

и следующих специальных символов:

+ -*/=,. :;?\ ~!#%$&()[]{} @

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

++ - == && << >> >= <= +=-=*=/=?: /*

*/

В следующем примере программы на языке С показана работа с переменными типа char:

* char. с

* Эта программа на языке С демонстрирует работу с переменн1ми типа

* char и показывает, как интерпретировать символьное значение

* в целочисленном виде.

#include <stdio.h> #include <ctype.h> int main() {

char csinglechar, cuppercase, clowercase; printf( \nВведите одну букву: scanf( %c ,Scsinglechar);



cuppercase = toupper(csinglechar); clowercase = tolower(csinglechar); printf( ВВЕРХНЕМ регистре буква \%с\имеет

десятичный ASCII-код %d\n ,cuppercase,

cuppercase); printf( ASCII-код в шестнадцатеричном формате

равен %Х\п , cuppercase); printf( Если прибавить

шестнадцать, то получится

\%c\\n ,(cuppercase + 16)); printf( ASCII-код полученного значения в

шестнадцатеричном формате

равен %X\n ,(cuppercase + 16)); printf( ВНИЖНЕМ регистре буква \%с\ имеет десятичный ASCII-код%d\n ,clowercase, clowercase); return(0); }

В результате работы программы на экран будет выведена следующая информация:

Введите одну букву: d

В ВЕРХНЕМ регистре буква Dимеет десятичный ASCII-код 68 ASCII-код в шестнадцатеричном формате равен 44 Если прибавить шестнадцать, то получится Т

ASCII-код полученного значения в шестнадцатеричном формате равен 54 В НИЖНЕМ регистре буква d имеет десятичный ASCII-код 100

Спецификатор формата %X служит указанием отобразить значение переменной в шестнадцатеричном виде в верхнем регистре.

Три типа целых чисел

В C/C++ поддерживаются три типа целых чисел. Наравне со стандартным типом int существуют типы shortint (короткое целое) и longint (длинное целое). Допускается сокращенная запись short и long. Хотя синтаксис самого языка не зависит от используемой платформы, размерность типов данных short, intи long может варьироваться. Гарантируется лишь, что соотношение размерностей таково: short <= int <= long. В MicrosoftVisual C/C++ для переменных типа shortрезервируется 2 байта, для типов intHlong - 4 байта.

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

Компиляторы языков C/C++ позволяют при описании переменных некоторых типов указывать модификатор unsigned. В настоящее время он применяется с четырьмя типами данных: char, short, int и long. Наличие данного модификатора указывает на то, что значение переменной должно интерпретироваться как беззнаковое число, т.е. самый старший бит является битом данных, а не битом знака.

Предположим, мы создали новый тип данных, my octal, в котором для записи каждого числа выделяется 3 бита. По умолчанию считается, что значения этого типа могут быть как положительными, так и отрицательными. Поскольку из 3-х доступных битов старший будет указывать на наличие знака, то диапазон возможных значений получится от -4 до 3.

Но если при описании переменной типа my octal указать модификатор unsigned, то тем самым мы освободим первый бит для хранения полезной информации и получим диапазон возможных значений от 0 до 7. Аналогичные преобразования выполняются и для стандартных типов данных, как видно из табл. 5.2.

Таблица 5.2. Характеристики стандартных типов данных языков С/С++

Тип данных

Байтов

Эквивалентные названия

Диапазон значений

signed, signed int

зависит от системы



unsigned int

unsigned

зависит от системы

int8

char, signed char

от -128 до 127

int!6

short, short int, signed short int

от -32768 до 32767

int32

signed, signed int

от -2147483648 до 2147483647

nt64

от -9223372036854775808 до 9223372036854775807

char

signed char

от -128 до 127

unsignedchar

от 0 до 255

short

short int, signed short int

от -32768 до 32767

unsigned short

unsigned short int

от 0 до 65535

long int, signed long int

от -2147483648 до 2147483647

unsigned long

unsigned long int

от 0 до 4294967295

1enura

то же, что int

float

приблизительно +/-3.4Е+/-38

ouble

long double

приблизительно +/-1,8Е+/-308

Модификаторы signed и unsigned могут использоваться с любыми целочисленными типами данных. Тип char по умолчанию интерпретируется как знаковый. Типы данных intи unsignedint имеют размерность системного слова: 2 байта в MS-DOS и 16-разрядных версиях Windows и 4 байта в 32-разрядных операционных системах. При построении переносимых программ не следует полагаться на конкретную размерность целочисленных типов. В то же время в компиляторе MicrosoftC/C++ поддерживается использование целых чисел фиксированной размерности, для чего введены типы intx. В табл. 5.3 показаны все возможные комбинации типов данных и модификаторов signed и unsigned.

Таблица 5.3. Возможные варианты использования модификаторов типов данных

Полное название

Эквиваленты

signed char

char

signed int

signed, int

signed short int

short, signed short

signed long int

long, signed long

unsigned char

unsigned int

unsigned

unsigned short int

unsigned short

unsigned long int

unsigned long

Числа с плавающей запятой

В C/C++ используется три типа данных с плавающей запятой: float, double и longdouble. Хотя в стандарте ANSI С не указан точный диапазон их значений, общепринято, что переменные любого из этих типов должны как минимум поддерживать диапазон от 1 Е-37 до 1 Е+37. Как видно из табл. 5.2, в MicrosoftVisual C/C++ возможности типов данных с плавающей запятой значительно превышают минимальные требования. Тип longdouble отсутствовал в первоначальном варианте языка и был предложен комитетом ANSI. Ранее, в 16-разрядных



1 ... 21 22 23 [ 24 ] 25 26 27 ... 150

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика