Как преобразовать маленький Endian в большой Endian с помощью побитовых операций? - PullRequest
1 голос
/ 08 февраля 2011

Я получаю, что вы хотите сделать что-то вроде: взять первые четыре бита, поместить их в стек (чтение слева направо), а затем просто поместить их в регистр и сдвинуть их x раз, чтобы поместить их в правая часть номера?

Что-то вроде

1000 0000 | 0000 0000 | 0000 0000 | 0000 1011

Стек: внизу - 1101 - вверху сдвиньте его 28 раз влево

Затем сделайте что-то похожее с последними четырьмя битами, но сдвиньте вправо и сохраните в регистр.

Тогда вы и тот с пустым возвращаемым значением 0

Есть ли более простой способ?

Ответы [ 2 ]

2 голосов
/ 08 февраля 2011

Да, есть.Проверьте _byteswap функции / встроенные функции и / или инструкцию bswap .

0 голосов
/ 13 декабря 2013

Вы можете сделать это следующим образом. Например, I / p: 0010 1000 и я хочу вывести 1000 0010

хранилище ввода в переменную x int x;i = x >> 4 j = x << 4 k = i |j print (K) // это будет 1000 0010. </p>

...