编写函数

    xiaoxiao2023-11-06  152

     

    unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。 如: 在32位机器上25这个值包含下列各位: 00000000000000000000000000011001 翻转后:(2550136832) 10011000000000000000000000000000 程序结果返回: 2550136832  

     

    #include <stdio.h> #include <stdlib.h> #include <math.h> unsigned int reverse_bit(unsigned int value){ int sum = 0; int b = 0; int i; for (i = 0; i < 32; i++){ b = ((value >>i )&1)*pow(2, (31 - i)); sum += b; } return sum; } int main() { int a = 25; int ret = 0; ret=reverse_bit(a); printf("%u\n", ret);//此处要用%u而不是%d的,若最高位为1,ret代表有符号数,其结果为负数 system("pause"); return 0; }

     

    最新回复(0)