手写代码 - 判断的知识点

1- 在使用位运算时,不能直接把int 0 (0000) 作为while()的条件来判断。。

 1 public class Solution {
 2     public int NumberOf1(int n) {
 3         int result = 0;
 4         while(n){ //error:incompatible types: int cannot be converted to boolean
 5             n = n & (n-1);
 6             result++;
 7         }
 8         return result;
 9     }
10 }

还是需要用while(n!=0)来判断

 

2- ==优先级大于&运算

1 if(exponent & 1 == 1){
2             return Helper(base, exponent/2)*Helper(base, exponent/2)*base;
3         }

因此会出现这个error:

1 /Solution.java:21: error: bad operand types for binary operator '&'
2 if(exponent & 1 == 1){
3 ^
4 first type: int
5 second type: boolean

因此,要修改为:

1 if((exponent & 1) == 1){//加一个括号
2             return Helper(base, exponent/2)*Helper(base, exponent/2)*base;
3         }

 

posted on 2019-03-03 22:02  frank_cui  阅读(217)  评论(0编辑  收藏  举报

导航

levels of contents