近期笔试题C/C++---1
view plaincopy to clipboardprint?
/*
请编写函数:
unsigned int reverse_bites(unsigned int value);
这个函数的返回值是把value的二进制位模式从左到右交换一次后的值。例如,在32位机器上,25这个值包含下列各个位:
00000000000000000000000000011001
函数的返回值应该是2,550,136,832,它的二进制位模式是:
10011000000000000000000000000000
编写函数时要注意不要让它依赖于你的机器上整型值的长度。
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
size_t reverse_bites(size_t value);
int main(void)
{
int input;
printf("Please input a number\n");
scanf("%d", &input);
printf("The result after reverse is %d\n", reverse_bites(input));
system("pause");
return 0;
}
size_t reverse_bites(size_t value)
{
int answer = 0;
for(int i = 1; i != 0; i <<= 1)
{
answer <<= 1;
if(value & 1)
answer |= 1;
value >>= 1;
}
return answer;
}
作者“xhz1234的专栏”
补充:软件开发 , C++ ,