(x >> i) & 1
) и "записать значение a в позицию i" ((x & ~(1 << i)) | (a << i)
). Дальше остается написать цикл и руками менять биты местами.Как поменять порядок битов в байте C?
int8_t byte = 0xAA; // 0b10101010
int8_t result = 0;
result = result | ((0x80 & byte) >> 7);
result = result | ((0x40 & byte) >> 5);
result = result | ((0x20 & byte) >> 3);
result = result | ((0x10 & byte) >> 1);
result = result | ((0x08 & byte) << 1);
result = result | ((0x04 & byte) << 3);
result = result | ((0x02 & byte) << 5);
result = result | ((0x01 & byte) << 7);
// result = 0b01010101