туплю второй день. есть байт, представляющий собой упакованные флаги. пакуются они в следующем виде:
+---+---
| 0 |
| 1 | Size
| 2 |
+---+---
| 3 | Sorted
+---+--
| 4 |
| 5 | Resolution
| 6 |
+---+--
| 7 | Present
+---+--
делал так:
Present := B and 1;
Resolution := B shr 1 and 7;
Sorted := B shr 4 and 1;
Size := B shr 5 and 7;
для чмсла 87, например, имеем 01010111. вся сия лабуда отрабатывает правильно. с одним маленьким но. байт представляет собой часть хидера ГИФ-файла, а именно - описывает глобальную палитру цветов. и если флаг Present сброшен, поле Size
обязано быть забитым нулями. а у меня при сброшенном флаге там сидят цифири, чего не может быть в принципе. явно, что где-то нарушена логика, только где - я понять не могу :/