LINUX.ORG.RU

История изменений

Исправление andreyu, (текущая версия) :

То, что бросилось в глаза:

int r = ((rgb_rgb >> 0 * 8) & 255);
int g = ((rgb_rgb >> 1 * 8) & 255);
int b = ((rgb_rgb >> 2 * 8) & 255);

1. Приоритет операции * выше, чем операции сдвига.
2. Сдвиг нужно делать не на 1 и 2 бита, а на 8 и 16 бит.

Исходная версия andreyu, :

То, что бросилось в глаза:

int r = ((rgb_rgb >> 0 * 8) & 255);
int g = ((rgb_rgb >> 1 * 8) & 255);
int b = ((rgb_rgb >> 2 * 8) & 255);

1. Приоритет операции * выше, чем операции сдвига. 2. Сдвиг нужно делать не на 1 и 2 бита, а на 8 и 16 бит.