Tôi đang chuyển đổi số nguyên chưa dấu sang nhị phân sử dụng toán tử bitwise, và hiện đang làm số nguyên & 1 để kiểm tra xem bit là 1 hay 0 và đầu ra, sau đó phải dịch bằng 1 để chia cho 2. Tuy nhiên các bit được trả về theo thứ tự sai (ngược lại), vì vậy tôi đã đảo ngược thứ tự bit trong số nguyên trước khi bắt đầu.C bit đảo ngược trong số nguyên không dấu
Có cách nào đơn giản để thực hiện việc này không?
Ví dụ: Vì vậy, nếu tôi đưa ra unsigned int 10 = 1010
while (x not eq 0)
if (x & 1)
output a '1'
else
output a '0'
right shift x by 1
này trả về 0101 đó là không chính xác ... vì vậy tôi đã suy nghĩ để đảo ngược thứ tự của các bit ban đầu trước khi chạy vòng lặp, nhưng tôi không chắc chắn làm thế nào để làm điều này?
Bạn nên đăng một số mã để làm cho điều này rõ ràng hơn một chút (không có ý định chơi chữ). – user973572
Ví dụ được thêm vào OP –
Bản sao có thể có của [Thuật toán tốt nhất cho bit đảo ngược (từ MSB-> LSB sang LSB-> MSB) trong C] (http://stackoverflow.com/questions/746171/best-algorithm-for-bit -reversal-from-msb-lsb-to-lsb-msb-in-c) –