Программирование >>  Дополнительные возможности наследования 

1 ... 11 12 13 [ 14 ] 15 16 17 ... 265


12 13 14 15 16 17

typedef unsigned short int USHORT; определение псевдонима

int maln() {

USHORT Width = 5; USHORT Length; Length = 10;

USHORT Area = Width Length; cout Width: Width \n ; oout Length: Length endl; cout Area: Area << endl; return 0;

iii Width:5

Length: 10 Area: 50

в строке 5 идентификатор USHORT с помощью ключевого слова typedef определен как псевдоним типа unsigned short int. В остальном эта программа аналогична предыдущей, представленной в листинге 3.2, да и результаты работы обеих программ совпадают.

В каш случаях слеуует использовать топы short о lony

Начинающим программистам часто бывает трудно принять рещение о том, когда объявлять переменную с использованием типа long, а когда - с использованием типа short. Правило довольно простое: если существует хоть малейщий щанс, что ваше значение будет слишком большим для предполагаемого типа, используйте тип с большим размером.

Приведенные в табл. 3.1 переменные типа unsigned short int, как правило, имеют размер, равный двум байтам, и могут хранить значение, не превышающее 65 535. Знаковые короткие целые делят свой диапазон между положительными и отрицательными числами, поэтому их максимальное значение вдвое меньше, чем у беззнакового короткого целого.

Хотя переменные типа unsigned long int могут хранить очень большое число (4 294 967 295), оно все-таки конечно. Если вам нужно работать с еще большими числами, придется перейти к использованию типов float или double, но при этом вы несколько проифаете в точности. Переменные типа float и double могут хранить чрезвычайно большие числа, но на большинстве компьютеров значимыми остаются только первые 7 или 19 цифр, т.е. после указанного количества цифр число округляется.

Переменные с меньшим размером используют меньший объем памяти. В наши дни память становится все дешевле, а жизнь не так уж длинна, чтобы тратить ее на экономию памяти. Поэтому отдайте предпочтение типу int, который на большинстве компьютеров имеет размер в четыре байта.



ПврВППАПВНиВ ОВЗЗППКВПЫХ ЦЕЛЫХ

Что случится, если при использовании беззнаковых длинных целых превысить их предельный максимум?

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

дасшана 3.4. Пример иврвиожнеиия АеззцаковоР цвжоР неременноД

Kinclude <iostream,h>

int main()

unsigned short int smallNumber; smallNumber = 65535;

cout small number; smallNumber << endl; smallNumber++;

cout small number: smallNumber << endl; smallNumber++;

cout small number; smallNumber endl; return 0;

ЕЯД small number;65535 small number;0 small number;1

В строке 4 объявляется переменная smallNumber типа unsigned short int, которая на моем компьютере является двухбайтовой, способной хранить значение между О и 65 535. В строке 5 переменной smallNumber присваивается максимальное значение, которое в строке 6 выводится на экран.

В строке 7 переменная smallNumber увеличивается на 1. Приращение осуществляется с помощью оператора инкремента, имеющего вид двух символов плюс (++). Следовательно, значение переменной smallNumber должно стать 65 536. Однако переменная типа unsigned short int не может хранить число, большее 65 535, поэтому ее значение сбрасывается в О, который и выводится в строке 8.

В строке 9 переменная smallNumber вновь увеличивается на единицу, после чего ее новое значение выводится на экран.

Пврвпвлнвнив знакввых цвлвчислвнных значвниО

Знаковые целые отличаются от беззнаковых тем, что половина этих значений всего диапазона - отрицательные числа. При выходе за пределы максимального положительного значения переменная принимает минимальное отрицательное значение. В листинге 3.5 показано, что происходит, если добавить единицу к максимальному положительному числу, хранящемуся в переменной типа short int.



Дцсшинг 3.5. Пример нереноянении зиажовоР цеяоО неременноО

1: #include <iostream,h> 2 3 4 5 6 7

9 10 11 12

int mainO {

short int SfnallNumber; smallNunber = 32767;

cout small number: smallNumber endl smallNumber++; cout small number: smallNumber endl smallNumber++;

cout small number: << smallNumber << endl return 0;

small number:32767 small number:-32768 small number:-32767

В строке 4 переменная smallNumber объявляется на этот раз короткой целой (short int) со знаком (если в объявлении переменной ключевое слово unsigned отсутствует, т.е. эта переменная явно не объявляется беззнаковой, то подразумевается ее использование со знаком). В остальном эта профамма выполняет те же действия, что и предьщущая, но на экран выводятся совсем другие результаты. Чтобы до конца понять, почему получены именно такие результаты, нужно знать, как представляются числа со знаком в двухбайтовом целом значении.

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

Символы

Символьные переменные (типа char) обычно занимают один байт, этого достаточно для хранения 256 значений печатаемых символов (см. приложение В). Значение типа char можно интерпретировать как число в диапазоне 0-255, или символ ASCII. Набор символов ASCII и его эквивалент ISO (International Standards Organization - Международная организация по стандартизации) представляют собой способ кодировки всех букв, цифр и знаков препинания.

Например, в коде ASCII английской строчной букве а присвоено значение 97. Всем прописным и строчным буквам, всем цифрам и знакам препинания присвоены значения от 1 до 128. Дополнительные 128 знаков и символов зарезервированы для расширения возможностей компьютера, хотя расширенный набор символов IBM стал уже чем-то вроде стандарта.

ASCII обычно произносится как аскей



1 ... 11 12 13 [ 14 ] 15 16 17 ... 265

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