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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
#1

собрать число , битовая арифметика - C++

09.02.2013, 15:45. Просмотров 839. Ответов 4
Метки нет (Все метки)

Помогите пожалуйста, а то с битовой арифметикой проблемы, получаю из color числа его каналы по следующей формуле
C++
1
2
3
R = (color >> 16) & 0xFF;
G = (color >> 8) & 0xFF;
B = (color ) & 0xFF;
теперь хочу собрать обратно color, но не понимаю как правильно сделать , может кто помочь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2013, 15:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос собрать число , битовая арифметика (C++):

Битовая арифметика - C++
Почему при: int myVar = 15, mask = 0x00 00 00 01; //выделил разряды printf("%d", myVar & mask); Я получаю -1? Конечно, я мог бы...

Длинная арифметика: как ввести длинное число? - C++
Находил миллион сайтов, где описывается, как работать с длинными числами, однако, не нашёл ни одного сайта, где описывается, как ввести...

Длинная арифметика - возвести число в большую степень - C++
Нужно возвести 3-300, подскажите, пожалуйста, идею, а то не очень понимаю

Представить число в двоичном коде и собрать обратно - C++
Не могу найти ошибку в цикле Здравствуйте. Есть такой цикл: A = 555; while(A != 1) { c++; ...

С, битовая запись - C++
Всем доброго времени суток, после 3 дней поиска информации решил попытать счастье, задав вопрос у форумчан. так же читал много подобных...

Битовая маска - C++
Как в шифровании битовыми перестановками применить маску?

4
iama
1250 / 975 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
09.02.2013, 15:47 #2
Nixy,
C++
1
int color = (R << 16) | (G << 8) | B;
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
09.02.2013, 15:57  [ТС] #3
я пробовал почти также
C++
1
int color = b | (g << 8) | (r << 16);
но с исходным не совподает, чего-то не хватает
0
iama
1250 / 975 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
09.02.2013, 15:59 #4
Nixy, значит разбираете не так. Выложите весь код.

Добавлено через 43 секунды
Возможно, в числе еще альфа-канал есть.
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
09.02.2013, 16:19  [ТС] #5
Цитата Сообщение от iama Посмотреть сообщение
Возможно, в числе еще альфа-канал есть.
он там точно есть, исходники написаны на java , а что еще надо сделать чтоб альфа канал учесть

Добавлено через 19 минут
все разобрался
C++
1
2
alpha = color >> 24;
color = (alpha << 24 )|( r << 16 )| (g << 8 )| b
0
09.02.2013, 16:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2013, 16:19
Привет! Вот еще темы с ответами:

битовая маска - C++
как использовать битовую маску? за пример можно взять выделение k-того разряда из n-разрядного числа (в пофиг какой системе исчесления).

битовая маска - C++
надо разработать функцию проверки правильности битовой маски. 32-х битная “маска” считается действительной, если ее двоичное...

Битовая операция -> - C++
Что делает операция -&gt; К примеру, есть структура: struct BIT{ unsigned int cod1:3; :1;...

64-битовая строка - C++
Необходимо реализовать структуру 64-битовой строки состоящей из двух unsigned long полей, с последующей возможностью использования битовых...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru