Главная » iPhone, Objective-C, Программирование для iOS и MacOS » Использование еnum для определения битовых масок Objective-C

0

Часто в программе бывает нужно определить список констант; каждая из которых представляет   целое   число   с   одним   установленным   битом.   Далее   эти   числа

объединяются   поразрядной   операцией   ИЛИ и   проверяются   с   использованием поразрядной операции И (см. выше).

Элегантное решение этой задачи основано на создании перечисления, использующего оператор сдвига влево для определения значений. Например, константы UIDataDetector определяются следующим образом:

enum {

UIDataDetectorTypePhoneNumber        =1<<0,

UIDataDetectorTypeLink               =1<<1,

UIDataDetectorTypeAddress            =1<<2,

UIDataDetectorTypeCalendarEvent      =1<<3,

UIDataDetectorTypeNone               = 0,

UIDataDetectorTypeAll                = NSUIntegerMax

};

Больше байтов

В этой главе мы работали с типом unsigned сhar, состоящим из одного 8-разрядного байта. Любой беззнаковый целый тип работает аналогичным образом. Например, NSTextCheckingTypePhoneNumber в действительности объявляется как unit64_t – 64- разрядное число без знака.

Упражнение

Напишите программу, которая создает 64-разрядное целое число без знака, в котором установлен каждый второй бит. (Возможны два результата: четный и нечетный; создайте нечетный.) Выведите полученное число.

Источник: Аарон Хилегас, «Objective-C. Программирование для iOS и MacOS», 2012 г.

По теме:

  • Комментарии