Re: поменять местами байты в uint32_t
От: Erop Россия  
Дата: 23.03.15 21:35
Оценка:
Здравствуйте, IROV.., Вы писали:

IRO>как правильней делать?

IRO>преобразовать к uint8_t * и свапнуть 0 и 2 элемент.
Это вряд ли хорошо, будут какие-нибудь пенальти за смены разрядности и работу с памятью...


Я бы по маске вырезал "неподвижную и "подвижную" части, и подвижной сделал бы rotl какой-нибудь интрисик-функцией...
А если компиллер интрисики не умеет эффективно, то что-то вроде
(x&0xFF00FF00)|((x&0x00FF0000)>>16)|((x&0x000000FF)<<16)
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.