Как в c# обратиться к объекту по битам (или совершить над ним битовую операцию)?

Рейтинг: 0Ответов: 1Опубликовано: 17.03.2015

Имея объект, например:

SystemDrawing.Color color=SystemDrawing.Color.Blue;

приравнять его к (255<<24|122<<8).
Или провести побитовое приравнивание И или ИЛИ (& |), например:

color &=255<<24|122<<8;
color |= 255<<24|122<<8

Или изменить какой-либо бит, например:

 color = color & (~0 ^ 1<<16);

Ну или каким методом обратиться к битам объекта в c#, не используя методы класса BitConverter? Ну или сотворить с написанным мной объектом?

Ответы

▲ 1

Color представляет собой структуру с полями A, R, G и B. Еще у нее есть методы ToArgb и FromArgb. Таким образом, если надо, например, инвертировать цвет, то можно сделать так:

Color color = Color.Blue;
Color inverted = Color.FromArgb(color.R ^ 0xFF, color.G ^ 0xFF, color.B ^ 0xFF);
// или так
Color inverted = Color.FromArgb(color.ToArgb() ^ 0xFFFFFF);