C инвертировать биты в целое число без знака

Я конвертирую целое число без знака в двоичное, используя побитовые операторы, и в настоящее время делаю целое число & 1, чтобы проверить, равен ли бит 1 или 0, и вывести, затем сдвинуть вправо на 1, чтобы разделить на 2. Однако биты возвращаются в неправильном порядке (в обратном порядке), поэтому я решил изменить порядок битов в целочисленном перед началом.

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

Пример: Итак, если мне дается unsigned int 10 = 1010

while (x not eq 0) 
  if (x & 1)
    output a '1'
  else 
    output a '0'
  right shift x by 1

, это возвращает 0101, что неверно ... поэтому я думал изменить порядок битов изначально перед запуском цикла, но я не уверен, как это сделать. ?

10
задан 4 February 2012 в 21:54
поделиться