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

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

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

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

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

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

C++ битовая маска
Битовая операция -> C++
Битовая сортировка! C++
C++ битовая маска
64-битовая строка C++
C++ Битовая арифметика
Представить число в двоичном коде и собрать обратно C++
С, битовая запись C++
C++ Длинная арифметика - возвести число в большую степень
Битовая инверсия C++
Битовая маска C++

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

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

Добавлено через 43 секунды
Возможно, в числе еще альфа-канал есть.
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
Yandex
Объявления
09.02.2013, 16:19     собрать число , битовая арифметика
Ответ Создать тему
Опции темы

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