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

Posted daimasanjiaomao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二进制的前导的零——mooc《零基础学Java语言》-(浙大翁凯)期末编程题相关的知识,希望对你有一定的参考价值。

题目内容:

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

 

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

 

输入格式:

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

 

输出格式:

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

 

输入样例:

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);
            
        }

    }

}

 

以上是关于二进制的前导的零——mooc《零基础学Java语言》-(浙大翁凯)期末编程题的主要内容,如果未能解决你的问题,请参考以下文章

中国MOOC_零基础学Java语言_第5周 数组

念整数——mooc《零基础学Java语言》-(浙大翁凯)第四周编程题

中国MOOC_零基础学Java语言_第2周 判断_2信号报告

中国MOOC_零基础学Java语言_第7周 函数_2完数

零基础学C语言知识总结三:运算符进制转换输入输出

零基础学C语言知识总结三:运算符进制转换输入输出