零基础学Java语言-翁凯老师-测验与作业-期末考试

编程知识 行业动态 更新时间:2024-06-13 00:19:14

期末考试

题目1:

二进制的前导的零(10分)

题目内容:

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

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

输入格式:

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

输出格式:

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

输入样例:

256

输出样例:

23

时间限制:500ms内存限制:32000kb

注意MOOC上提交修改类名为Main
import java.util.Scanner;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		int onum=in.nextInt();
		int[] num=trans(onum);
		int k=-1;
		for(int i=31;i>=0;i--)
		{
			if(num[i]==1)
			{
				k=i;
				break;
			}
		}
		System.out.print(31-k);
		
	}
	public static int[] trans(int onum) {
		int[] num=new int[32];
		if(onum>=0)
		{
			num[31]=0;
		}
		else
		{
			num[31]=1;
		}
		for(int i=30;i>=0;i--)
		{
			if((onum-Math.pow(2, i))>=0)
			{
				num[i]=1;
			}
		}
		return num;
	}

}

更多推荐

零基础学Java语言-翁凯老师-测验与作业-期末考试

本文发布于:2023-03-28 00:13:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/ae9b051450e0f50034a9d44a3f5bbcfe.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:作业   测验   期末考试   语言   老师

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!