一、知识点:

二进制转换、遍历

二、文字分析:

代码首先将整数n转换为二进制字符串,并存储在变量binary中。然后,使用变量count来记录0的个数。

接下来,代码判断二进制字符串的长度是否小于32。如果小于32,则说明二进制字符串不足32位,需要在开头补0,以保持32位长度。这个补0的过程通过构建一个补充用的字符串supple来实现,其中包含了缺少的0。将补充的字符串与二进制字符串拼接,得到32位长度的二进制字符串。

最后,代码遍历二进制字符串的每个字符,如果字符为0,则将计数器count加1。

最后返回计数器count的值作为结果。

三、编程语言:

java

四、正确代码:

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param n int整型 
     * @return int整型
     */
    public int countZeros (int n) {
        //将整型转化为二进制码
        String binary = Integer.toBinaryString(n);
        int count=0;
        //还需要补充开头0的个数
        String supple = "";

        if(binary.length()<32){
            for(int i=0;i<32-binary.length();i++){
                supple+="0";
            }
        }

        binary=supple+binary;
        for(int i=0;i<binary.length();i++){
            if(binary.charAt(i) == '0') count++;
        }
        return count;
    }
}