Форум программистов, компьютерный форум CyberForum.ru

Маска байта - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить минимальный среди элементов побочной диагонали матрицы http://www.cyberforum.ru/cpp-beginners/thread609997.html
помогите пожалуйста написать программу Дана целочисленная квадратная матрица. Определить минимальный среди элементов побочной диагонали. Для ввода, вывода и обработки матрицы использовать функции.
C++ Помоги разобравться с нескольками прогами Объясните, какие действия выполняет каждая строка в 6 программах. №1. .... int add(int n, int m) {return n + m;} int divi(int n, int m) {return n / m;} int mult(int n, int m) {return n * m;} int subt(int n, int m) {return n - m;} void main() { http://www.cyberforum.ru/cpp-beginners/thread609991.html
Работа с файлами C++
Напишите пожалуйста программу ( с комментариями по возможности ) Информация об участниках спортивных соревнований содержит: - Ф.И.О. игрока; - игровой номер; - возраст; - рост; - вес; Вывести информацию о самой молодой, рослой и легкой команде.
C++ Определить среднюю массу мальчиков и средний рост девочек
Напишите пожалуйста программу(с комментариями по возможности): "По данным сведениям об учениках класса определить среднюю массу мальчиков и средний рост девочек. Кто из учеников класса самый высокий?"
C++ Попадает ли точка с заданными координатами в полукруг http://www.cyberforum.ru/cpp-beginners/thread609977.html
Определить, попадает ли точка с заданными координатами в полукруг радиусом R, расположенный в I и II четверти. (Уравнение окружности R2=x2+y2.).
C++ operator= Такой вопрос. Есть объект. Хочу чтобы при присваивании его к чеслу выдавалось число. Например. class MyClass { short MyClass::operator=(const MyClass&My) {return 12;}; }; Main() { подробнее

Показать сообщение отдельно
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
20.06.2012, 17:01     Маска байта
Все намного проще чем Вы думаете:
Для 32 битного числа:
C++
1
2
3
red = 255 & ( p >> 24 );
green = 255 & ( p >> 16 );
blue = 255 & ( p >> 8 );
Для 24 битного числа:
C++
1
2
3
red = 255 & ( p >> 16 );
green = 255 & ( p >> 8 );
blue = 255 & p;
ADD: конечно, под p я подразумеваю переменную, а не указатель.


Если данные цветов всегда хранятся в верхних разрядах то можно свести к такому виду:

C++
1
2
3
red = 255 & ( p >> ( BitPerPixel - 8 ));
green = 255 & ( p >> ( BitPerPixel - 16 ));
blue = 255 & ( p >> ( BitPerPixel - 24 ));
Добавлено через 11 минут
Так, я понял, что Вы имели ввиду. Сейчас попробую сделать для 32 битной маски. Хотя идея в принципе та же. Только единственно не понятно - зачем проверять маску?
 
Текущее время: 12:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru