#include <stdio.h>
#include <assert.h>
#include <stdint.h>
inline uint16_t reverse(uint16_t v) {
v = ((v >> 1) & 0x5555) | ((v & 0x5555) << 1); /* swap odd/even bits */
v = ((v >> 2) & 0x3333) | ((v & 0x3333) << 2); /* swap bit pairs */
v = ((v >> 4) & 0x0F0F) | ((v & 0x0F0F) << 4); /* swap nibbles */
v = ((v >> 8) & 0x00FF) | ((v & 0x00FF) << 8); /* swap bytes */
return v;
}
main() {
uint16_t gf_t = 44;
printf("%hu\n", reverse
(gf_t
)); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxhc3NlcnQuaD4KI2luY2x1ZGUgPHN0ZGludC5oPgoKaW5saW5lIHVpbnQxNl90IHJldmVyc2UodWludDE2X3QgdikgewogIHYgPSAoKHYgPj4gMSkgJiAweDU1NTUpIHwgKCh2ICYgMHg1NTU1KSA8PCAxKTsgLyogc3dhcCBvZGQvZXZlbiBiaXRzICovCiAgdiA9ICgodiA+PiAyKSAmIDB4MzMzMykgfCAoKHYgJiAweDMzMzMpIDw8IDIpOyAvKiBzd2FwIGJpdCBwYWlycyAqLwogIHYgPSAoKHYgPj4gNCkgJiAweDBGMEYpIHwgKCh2ICYgMHgwRjBGKSA8PCA0KTsgLyogc3dhcCBuaWJibGVzICovCiAgdiA9ICgodiA+PiA4KSAmIDB4MDBGRikgfCAoKHYgJiAweDAwRkYpIDw8IDgpOyAvKiBzd2FwIGJ5dGVzICovCiAgcmV0dXJuIHY7Cn0KCm1haW4oKSB7CiAgdWludDE2X3QgZ2ZfdCA9IDQ0OwogIHByaW50ZigiJWh1XG4iLCByZXZlcnNlKGdmX3QpKTsKICByZXR1cm4gMDsKfQ==