编写函数: unsigned intreverse

    xiaoxiao2021-12-14  19

    算法思想:将一个无符号整型的第一位比特位拿出来(从左到右),用的方法是移位与1;然后定义一个新的变量初始化成0,按以上的方法如果检测到某位是1,则从右往左把对

    应的比特位置1,0不要管,因为已经初始化成0了;最后返回这个新的无符号数

    注意

    (1)函数返回类型的真实对应

    (2)调用函数返回结果避免出现无定义的报错情况,使用递归调用 直接将调用作为参数

    程序:

    #include <stdio.h> int reverse_bit(unsigned int value) { unsigned int new_value=0; int i=0; for(i=31;i>=0;i++) { if((value>>i)&1==1) //判断第一位是否为1,如果是,将new_value的最后一位置1,以此类推,遍历完32位比特位 { new_value=(new_value)|(1<<(31-i)); } } return new_value; //当有整型的返回值时,函数类型不能是void类型 } int main() { unsigned int x=0; printf("please enter:"); scanf("%u",&x); printf("%u",reverse_bit(x)); return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-969031.html

    最新回复(0)