поменять местами байты в uint32_t
От: IROV..  
Дата: 23.03.15 20:11
Оценка:
есть

uint32_t color = 0xFFFF00AA;


нужно поменять FF и AA местами

как правильней делать?
преобразовать к uint8_t * и свапнуть 0 и 2 элемент.
либо делать

uint8_t a = (color >> 24) & 0xFF;
uint8_t b = (color >> 16) & 0xFF;
uint8_t g = (color >> 8) & 0xFF;
uint8_t r = (color >> 0) & 0xFF;

uint32_t p_color = (a << 24) + (r << 16) + (g << 8) + (b << 0);


для x84 и для ARM и вообще для мобильных и тд

З.Ы. кроме big endian проблемы
я не волшебник, я только учусь!
Отредактировано 23.03.2015 20:13 IROV.. . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.