习题:编写一个二进制位查看器,要求程序运行时从命令行输入一个整数,将其在内存中的二进制位的形式输出出来。

个人答案:

(1)java

import java.util.Scanner;

public class 二进制 {

    public static void main(String[] args) 

    {

        //输入十进制整数

        Scanner sc = new Scanner(System.in);

        System.out.println("Please enter a decimal integer:");//输入需要转化的十进制数

        int num = sc.nextInt();

        //定义一个空字符串,用来存放二进制数

        String str = "";



        //转化为二进制数

        //当十进制数不等于零的时候循环继续

        while (num != 0) {

            int i = num%2; //i用来存放十进制数除二的余数

            str = i + str; //因为十进制数转化为二进制数,最后余数是要反序的,所以是i加到字符串str的前面

            num = num/2; //每次取余一次之后都要给十进制数除二,这样才有循环结束的条件

        }

        System.out.println("The converted binary number is:"+str);//输出转化好的二进制数

    }

}

(2)python

a=eval(input('请您输入十进制数:'))

m=''

while a>0:

    m+=str(a%2)  #a对2求余,添加到字符串m最后

    a=a//2

print(m[::-1])   #反向输出

参考答案:

package chap2.test;



import java.util.Scanner;



public class Test1 {



	/**

	 * 二进制位查看器

	 */

	public static void main(String[] args) {

		int n;

		do{

			Scanner sc=new Scanner(System.in);

			System.out.println("Please input number:");

			n=sc.nextInt();

				

			for(int i=31;i>=0;i--){

				if((n & (1<<i))!=0){

					System.out.print("1");

				}else{

					System.out.print("0");

				}

				

				if((32-i)%8==0){

					System.out.print(" ");

				}

			}

	        System.out.println();

		}while(n!=0);

	}

}

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 以下是一个简单Java程序实现一个二进制位查看器: ```java import java.util.Scanner; public class BinaryViewer { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入一个整数:"); int num = scanner.nextInt(); String binaryString = Integer.toBinaryString(num); System.out.println("二进制位: " + binaryString); } } ``` 程序首先使用Scanner类从命令行输入一个整数,然后使用Integer类的toBinaryString方法将整数转换成二进制字符串,最后输出该字符串。 ### 回答2: 可以使用Java的位运算符来实现一个简单二进制位查看器。首先,从命令行输入一个整数,我们可以使用Scanner类来获取输入的整数。 然后,我们可以使用Java的位运算符来将整数转换为二进制位形式。我们可以使用循环和位移运算符来依次获取整数的每个二进制位。具体步骤如下: 1. 首先,导入java.util.Scanner类,以便接收命令行输入。 2. 创建Scanner对象,用于接收命令行输入。 3. 使用Scanner的nextInt()方法接收一个整数类型的输入。 4. 进行位运算转换。我们可以使用位运算符"&"和位移运算符">>"来逐位获取整数二进制位。 5. 创建一个字符串变量,用于存储转换后的二进制位。 6. 使用循环和位移运算符,从整数的最高位开始逐位获取二进制位,将每一位的值转换为字符并追加到字符串变量。 7. 输出字符串变量,即将整数二进制位形式输出出来。 下面是一个简单的示例代码实现: ```java import java.util.Scanner; public class BinaryViewer { public static void main(String[] args) { // 创建Scanner对象 Scanner scanner = new Scanner(System.in); System.out.print("请输入一个整数: "); int num = scanner.nextInt(); // 将整数转换为二进制位形式 String binary = ""; for (int i = 31; i >= 0; i--) { binary += (num & (1 << i)) != 0 ? "1" : "0"; } System.out.println("二进制位形式: " + binary); } } ``` 这样,当我们在命令行运行该程序,并输入一个整数时,程序将会将该整数内存二进制位形式输出出来。 ### 回答3: 设计一个JAVA程序实现一个简单二进制位查看器的思路如下: 1. 写一个主类BinaryViewer,包含一个main方法。 2. 在main方法,通过命令行输入Scanner读取一个整数n。 3. 将整数n转换为二进制字符串表示形式,可以使用Integer.toBinaryString方法实现。 4. 创建一个长度为32的字符数组bits,用于存储二进制位。 5. 遍历二进制字符串,将每个字符转换为数字后存储在bits数组。 6. 输出bits数组,可以使用Arrays.toString方法实现。 下面是实现代码的示例: ```java import java.util.Arrays; import java.util.Scanner; public class BinaryViewer { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入一个整数:"); int n = scanner.nextInt(); String binaryString = Integer.toBinaryString(n); char[] binaryCharArr = binaryString.toCharArray(); char[] bits = new char[32]; Arrays.fill(bits, '0'); int diff = 32 - binaryCharArr.length; for (int i = 0; i < binaryCharArr.length; i++) { bits[i + diff] = binaryCharArr[i]; } System.out.println("二进制位形式为:" + Arrays.toString(bits)); } } ``` 当我们运行这个程序输入一个整数时,程序会将其在内存二进制位形式输出出来,输出结果类似于:[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hellenionia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值