第一种解法:先判断最右边是不是1,接着把输入的整数右移一位,原来处于倒数第二位的数被移到最右边,再判断是不是1。每次移动一位,直到这个整数为0为止。如果输入的为负数时,将陷入死循环。
第二种解法:将输入的数n与1做与运算,判断最后一位是否为1,接着把1左移,再和n进行与运算。但是这种运算会循环32次。
第三种解法:把输入的整数n减去1,再和原来的整数做与运算,会把最右边的1变成0,那么整数二进制有多少个1就进行多少次与运算。
第一种解法:先判断最右边是不是1,接着把输入的整数右移一位,原来处于倒数第二位的数被移到最右边,再判断是不是1。每次移动一位,直到这个整数为0为止。如果输入的为负数时,将陷入死循环。
第二种解法:将输入的数n与1做与运算,判断最后一位是否为1,接着把1左移,再和n进行与运算。但是这种运算会循环32次。
第三种解法:把输入的整数n减去1,再和原来的整数做与运算,会把最右边的1变成0,那么整数二进制有多少个1就进行多少次与运算。
转载于:https://my.oschina.net/u/1051716/blog/733550