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

Работаю с классом CxImage - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Шахматы в консоли http://www.cyberforum.ru/cpp-beginners/thread834567.html
Хочу написать шахматы в консоли, но не знаю какой тип нужен для символов шахматных фигур, и вообще поддерживает ли их консоль? К примеру, можно присвоить переменной типа char символ '♔'? И будет ли он выводится в консоли? ОС Windows.
C++ Как зделать главное меню гуёвой программы? Среда codeblocks. http://www.cyberforum.ru/cpp-beginners/thread834545.html
Программирование функций по индивидуальному заданию C++
Разработать функцию типа int, который возвращает наибольшее число из трех входных параметров типа int. Заранее великое спасибо))
В программе определите дополнительный одномерный массив и заполните его значениями, вычисляемых как суммы элементов строк двумерного массива C++
Задание: 1. В программе определите дополнительный одномерный массив sum1 и заполните его значениями, вычисляемых как суммы элементов строк двумерного массива arr. Заранее спасибо. Добавлено через 8 минут Ввести программу, использовать оператор ввода-вывода cin, cout, отладить. Спасибо.
C++ Пытаюсь обуздать list http://www.cyberforum.ru/cpp-beginners/thread834500.html
В коде помечено место которое я не понимаю. А именно почему не работает. Взято и другого кода, где тот же метод работает правильно! С начало подумал, что erase удаляет объекты list, но быстро передумал. Тогда не вижу проблем к зависанию программы.. #include <iostream> #include <list> #include <conio.h>
C++ Как создать файл описания ресурсов, если у меня codeblocks? Как создать файл описания ресурсов, если у меня codeblocks? подробнее

Показать сообщение отдельно
abit
 Аватар для abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
11.04.2013, 13:50     Работаю с классом CxImage
дайте кусок вашего кода что вы понимаете под "переводом в биты"

самое быстрое, если отталкиваться от архитектуры железа - работать с логическими масками

поясню если есть например число в 24-битном TrueColor (хотя реально оно храниться в 32-битах, т.к. процессору удобнее работать с двойным словом), там каждый цвет как раз состоит как у вас на картинке из 8 бит

DWORD pixel = 0x00F1 F2F3
допустим порядок цветов RGB, теперь чтобы выделить только красный компонент маска выглядит так:

unsigned int red = (pixel&0x00ff0000)>>16;

но сдвиг как бы не обязателен, потому что все операции можно делать as is, не обязательно выделять компонент цвета как таковой - например нужно обнулить самый старший бит в этой красной маске:
pixel&=0x007fffff;
это обнулит для точки (согласно вашей картинке bit7-поле)
т.е. исходный 0x00f1f2f3 превратиться в 0x0071f2f3

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