二进制的前导的零——mooc《零基础学Java语言》-(浙大翁凯)期末编程题

题目内容:

计算机内部用二进制来表达所有的值。一个十进制的数字,比如18,在一个32位的计算机内部被表达为00000000000000000000000000011000。可以看到,从左边数过来,在第一个1之前,有27个0。我们把这些0称作前导的零。

现在,你的任务是写一个程序,输入一个整数,输出在32位二进制表达下它前导的零的个数。

输入格式:

一个整数,在32位的整数可以表达的范围内。

输出格式:

一个整数,表达输入被表达为一个32位的二进制数时,在第一个1之前的0的数量。

扫描二维码关注公众号,回复: 6294489 查看本文章

输入样例:

256

输出样例:

23

时间限制:500ms内存限制:32000kb
 
代码实现:
/*
 * 题目内容:
计算机内部用二进制来表达所有的值。一个十进制的数字,比如18,在一个32位的计算机内部被表达为00000000000000000000000000011000。
可以看到,从左边数过来,在第一个1之前,有27个0。我们把这些0称作前导的零。

现在,你的任务是写一个程序,输入一个整数,输出在32位二进制表达下它前导的零的个数。

输入格式:
一个整数,在32位的整数可以表达的范围内。

输出格式:
一个整数,表达输入被表达为一个32位的二进制数时,在第一个1之前的0的数量。

输入样例:
256

输出样例:
23

时间限制:500ms内存限制:32000kb
 */
import java.util.Scanner;

public class 二进制的前导的零 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner in=new Scanner(System.in);
        long num=in.nextLong();
        int count=0;
        if(num<0) 
        {
            System.out.print(0);
        }
        else
        {
            while(num!=0) 
            {
                num/=2;
                count++;
            }
            int zero=32-count;
            System.out.print(zero);
            
        }

    }

}

猜你喜欢

转载自www.cnblogs.com/daimasanjiaomao/p/10939409.html
今日推荐