Вход/Регистрация
Программирование на 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

  • Читать дальше
  • 1
  • ...
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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