Чтение онлайн

на главную - закладки

Жанры

Программирование на Objective-C 2.0
Шрифт:

Для вывода ведущего символа х и шестнадцатеричных цифр прописными буквами в символах форматирования ставится прописная буква X: %Х или %#Х.

Каждое значение, будь то символ, целое число или число с плавающей точ-кой, имеет связанный с ним диапазон значений. Этот диапазон связан с коли-чеством памяти, выделяемой для хранения определенного типа данных. Обычно он зависит от компьютера, на котором выполняется работа, и поэтому называется реализацией или машинно-зависимым диапазоном (implementation или machine dependent). Так, целое значение может занимать на вашем компьютере 32 или 64 бита.

Никогда не пишите программы, в которых предполагается определенный

размер типов данных. Для каждого базового типа данных гарантируются опре-деленные размеры памяти, например, для целого значения отводится не менее 32 бит памяти. Однако на некоторых машинах это не выполняется (см. таблицу В.З в приложении В). Тип float

Для хранения значений, содержащих знаки после запятой (точки), можно ис-пользовать переменные с типом float. Признаком константы с плавающей точкой является присутствие десятичной точки. Можно не указывать цифры до десятичной точки или после нее, но, очевидно, нельзя не указывать одновре-менно обе составляющие. 3., 125.8 и -.0001 являются примерами констант с плавающей точкой. В NSLog для вывода значения с плавающей точкой используются символы формата %f.

Константы с плавающей точкой можно записывать в виде так называемого экспоненциального представления (scientific notation). 1.7е4 — это значение с плавающей точкой для 1.7 х 104. Значение до буквы е называется мантиссой (mantissa), а значение после е называется порядком (exponent). Порядок, который может быть дополнительно снабжен знаком «плюс» или «минус», представляет степень числа 10 для умножения на мантиссу. Например, в константе 2.25е-3 значение 2.25 — это мантисса, а -3 — порядок. Эта константа представляет значение 2.25 х 10-3, или 0.00225. Букву е, которая отделяет мантиссу от порядка, можно записывать и как прописную, и как строчную букву.

Чтобы вывести значение в экспоненциальном представлении, в строке фор-мата NSLog должны быть заданы символы форматирования %е. Если исполь-зовать символы формата %g, то процедура NSLog сама определит, как выводить значение с плавающей точкой: в обычном форме записи с плавающей точкой или в экспоненциальном представлении. Решение основывается на значении порядка: если он меньше -4 или больше 5, то используется формат %е (экспоненциальное представление), если нет — используется формат %f.

Шестнадцатеричная константа с плавающей точкой содержит ведущие символы Ох или 0Х, после которых следует одна или несколько шестнадцатеричных цифр, затем р или Р, после чего следует двоичный порядок. Например, ОхО.ЗрЮ представляет значение 3/16 х 210 = 192. Тип double

Тип double аналогичен типу float. Он используется, если диапазон, предоставляе-мый переменной типа float, не дает достаточной точности. В переменных, кото-рые объявлены с типом double, можно сохранять примерно вдвое больше цифр, чем с типом float. На большинстве компьютеров для значений типа double ис-пользуются 64 бита.

Если не указано особо, то компилятор Objective-C обрабатывает все кон-станты с плавающей точкой как значения типа double. Чтобы явно задать кон-станту типа float, нужно добавить f или F в конце числа, например, 12.5L

Чтобы вывести значение типа @@ double, можно использовать символы формата %f, %е или %д, как и для значений типа float. Тип char

Переменную типа char можно использовать для хранения одного символа. Чтобы задать символ-константу, нужно заключить символ в апострофы, например, 'а', и '0'. Не следует путать символ-константу с символьной строкой в стиле С, которая содержит любое число символов,

заключенных в кавычки. Строка символов, заключенная в кавычки, перед которой поставлен символ — это объект-строка типа NSString.

Примечание. В приложении В описываются методы сохранения символов из расширенных наборов с помощью специальных escape-последовательностей, уникальных символов и так называемых «широких» символов.

Символ-константа '\n' (символ новой строки) является допустимым симво-лом-константой. Обратный слэш (обратная наклонная черта) — это специальный символ в системе Objective-C, который не учитывается как отдельный символ. Компилятор Objective-C интерпретирует '\n' как один символ. Имеются и другие специальные символы, которые инициируются с помощью обратного слэша. Полный список приводится в приложении В. Для вывода значения переменной типа char можно использовать символы формата %с при вызове NSLog. В программе 4.1 используются базовые типы данных Objective-C. #import <Foundation/Foundation.h> int main (int argc, char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; int integerVar = 100; float floatingVar = 331.79; double doubleVar = 8.44e+11; char charVar = 'W'; NSLog (@"integerVar = %i", integerVar); NSLog (@"floatingVar = %f", floatingVar); NSLog (@"doubleVar = %e", doubleVar); NSLog (@"doubleVar = %g", doubleVar); NSLog (@"charVar = %c", charVar); [pool drain]; return 0; }

Вывод программы 4.1 integerVar = 100 floatingVar = 331.790009 doubleVar = 8.440000e+11 doubleVar = 8.44e+11 charVar = 'W'

Во второй строке вывода значение 331.79, присвоенное переменной floatingVar, выводится как 331.790009. Причиной этой неточности является внутреннее представление чисел в компьютере. С таким же типом неточности вы сталкиваетесь при работе с числами на своем калькуляторе. Если разделить 1 на 3 на калькуляторе, в результате получится .33333333 (в конце, возможно, будет еще несколько троек). Эта строка является аппроксимацией одной трети калькулятором. Теоретически число троек бесконечно, но калькулятор может содержать столько цифр, сколько соответствует внутренней точности устройства. Тот же тип неточности возникает и здесь: определенные значения с плавающей точкой не могут быть точно представлены в памяти компьютера. Квалификаторы: long, long long, short, unsigned и signed

Если квалификатор long помещен непосредственно перед объявлением int, то соответствующая целая переменная на некоторых компьютерах имеет расши-ренный диапазон. Пример объявления long int: long int factorial;

Это объявление целой переменной factorial типа long. Как и в случае перемен-ных типа float и double, конкретная точность переменной типа long зависит от компьютерной системы. Во многих системах int и long int имеют одинаковый диапазон и могут использоваться для хранения целых значений до 32 бит (231 — 1, или 2147483647).

Значение константы типа long int формируется путем добавления буквы L (прописной или строчной) в конец целой константы. Между числом и буквой L не допускаются никакие пробелы. Ниже приводится пример объявления переменной numberOfPoints типа long int с начальным значением 131071100: long int numberOfPoints = 131071100L;

Чтобы вывести значение типа long int с помощью NSLog, перед символами форматирования i, о и х в качестве модификатора ставится буква I. Это означает, что символы форматирования %li выводят значения типа long int в десятичном формате, символы %1о — в восьмеричном формате, символы %1х — в шестнадцатеричном формате.

Поделиться:
Популярные книги

Хранители Сальвуса

Левицкая Татьяна
1. Хранители Терры
Фантастика:
фэнтези
альтернативная история
5.00
рейтинг книги
Хранители Сальвуса

Низший - Инфериор. Компиляция. Книги 1-19

Михайлов Дем Алексеевич
Фантастика 2023. Компиляция
Фантастика:
боевая фантастика
5.00
рейтинг книги
Низший - Инфериор. Компиляция. Книги 1-19

Точка Бифуркации VII

Смит Дейлор
7. ТБ
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Точка Бифуркации VII

В глухом углу

Снегов Сергей Александрович
Проза:
советская классическая проза
5.00
рейтинг книги
В глухом углу

Маурайская федерация (сборник)

Андерсон Пол Уильям
Фантастика:
научная фантастика
5.00
рейтинг книги
Маурайская федерация (сборник)

Хроники Максима. Трилогия

Бадей Сергей
Фантастика:
юмористическое фэнтези
8.26
рейтинг книги
Хроники Максима. Трилогия

Воронцов. Перезагрузка

Тарасов Ник
1. Воронцов. Перезагрузка
Фантастика:
попаданцы
альтернативная история
фантастика: прочее
5.50
рейтинг книги
Воронцов. Перезагрузка

Неучтенный элемент. Том 12

NikL
12. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 12

Таверна на прокачку. Трилогия

Ковальчук Олег Валентинович
1. Хозяин очага и крова
Фантастика:
рпг
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Таверна на прокачку. Трилогия

Прогрессивный сатанизм. Том 1

Мильхар
Религия и эзотерика:
прочая религиозная литература
5.00
рейтинг книги
Прогрессивный сатанизм. Том 1

"Охотник". Компиляция. Книги 1-12

Усманов Хайдарали
Собрание сочинений
Фантастика:
боевая фантастика
5.00
рейтинг книги
Охотник. Компиляция. Книги 1-12

Мелодия Бесконечности. Симфония чувств - первый аккорд

Голинченко Екатерина Андреевна
1. Мелодия Бесконечности
Фантастика:
фэнтези
мистика
фантастика: прочее
сказочная фантастика
6.25
рейтинг книги
Мелодия Бесконечности. Симфония чувств - первый аккорд

Дружба

Фриза
Любовные романы:
современные любовные романы
9.07
рейтинг книги
Дружба

Я снова князь. Книга XXIII

Дрейк Сириус
23. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я снова князь. Книга XXIII