понедельник, 17 августа 2015 г.

15. Битовые операции.

Видео урок находится здесь.
В этом уроке рассказывается о двоичном представлении числа.
Что такое побитовое сложение или |.
Что такое побитовое и или умножение &.
Что такое исключающее или ^ и ~ инверсия.

Показано, как красиво (в стиле Apple) оформлять Enum для масок:
typedef enum{
    TAStudentSubjectTypeBiology      =1<<0,
    TAStudentSubjectTypeMath         =1<<1,
    TAStudentSubjectTypeDevelopment      =1<<2,
    TAStudentSubjectTypeEngineering      =1<<3,
    TAStudentSubjectTypeArt      =1<<4,
    TAStudentSubjectTypePsychology      =1<<5,
    TAStudentSubjectTypeAnatomy      =1<<6
} TAStudentSubjectType;


С помощью или |  устанавливаются все значения:
 student.subjectType= TAStudentSubjectTypeAnatomy|TAStudentSubjectTypeDevelopment|                   TAStudentSubjectTypeEngineering|TAStudentSubjectTypeMath;


Для вывода и проверки установлено ли значение применяется битовое & -  умножение
-(NSString *) answerByType: (TAStudentSubjectType) type{
    return self.subjectType&type?@"yes":@"no";
}
[self answerByType:TAStudentSubjectTypeBiology],

Еще фишка одна.
Чтобы выводить объект в NSLog необходимо переопределить метод -(NSString *) description;

Проект с уроком находится здесь.



Домашнее задание к уроку 15 Битовые маски:

Ученик.

1. Повторите мой код и создайте класс студент с соответствующим набором предметов
2. В цикле создайте 10 студентов и добавьте их в массив. Используйте мутабл массив
3. У каждого рандомно установите предметы

Студент

4. В новом цикле пройдитесь по студентам и разделите их уже на два массива - технари и гуманитарии.
5. Также посчитайте количество тех кто учит программирование

Мастер.

6. Если студенты выбрали биологию, то отмените ее у них и выведите сообщение в лог, предмет отменен
7. Тут придется разобраться как сбросить бит, включите логику :)

Супермен.
8. Сгенерируйте случайный интежер в диапазоне от 0 до максимума.
9. Используя цикл и битовые операыии (и возможно NSMutableString) выведите это число на экран в двоичном виде


Выполнены все задания к уроку (ученик, студент, мастер, супермен) 15.
Проект с домашним заданием к уроку 15 - битовые операции.

Комментариев нет:

Отправить комментарий