1. 程式人生 > >【c語言】將一個數的二進位制序列逆序,然後輸出逆序之後的二進位制序,所對應的數

【c語言】將一個數的二進位制序列逆序,然後輸出逆序之後的二進位制序,所對應的數

<pre name="code" class="cpp">//  將一個數的二進位制序列逆序,然後輸出逆序之後的二進位制序,所對應的數

#include <stdio.h>

//  從原數拿出最低位,放到mid中,mid左移,原數右移
int reverse(int a)
{
	int mid = 0;
	int bit;
	int n = 32;
	for (; n > 0; --n)
	{
		bit = a & 1;
		mid <<= 1;
		mid |= bit;
		a >>= 1;
	}
	return mid;
}

int main()
{
	printf("%u\n", reverse(1));
	printf("%u\n", reverse(1073741824));
	printf("%u\n", reverse(-1));
	printf("%u\n", reverse(2147483647));
	return 0;
}