|
Программирование >> Дополнительные возможности наследования
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 обычно произносится как аскей
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |