当前位置:编程学习 > C/C++ >>

近期笔试题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++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,