如何定义整型变量,一个字符串变量,如图输出?

新手上路,请多包涵

image.png

阅读 1.8k
2 个回答

思路

这个题目比较简单,建议有思路直接网上找代码拿实现方法就行,不建议直接全部抄答案。

思路提示

1.如何获取命令行输入的整形数
2.如何把10进制整型数转换2进制字符串
3.如何把2进制字符串转换为10进制整形数
4.最后拼凑字符串输出即可

关键方法提示

Integer.toBinaryString(int param)
Integer.parseInt(binaryString, 2);

答案之一

public static void main(String[] args) {
        System.out.println("输入正整数a:");

        // 接收一个整型
        Scanner scanner = new Scanner(System.in);
        int originInt = scanner.nextInt();

        // 先转换二进制
        String binaryString = Integer.toBinaryString(originInt);

        //二进制表示后 左移是在后面加0 题目右移了两次
        String afterLeftShiftBinaryStr = binaryString + "00";
        int afterLeftShiftBinaryInt = Integer.parseInt(afterLeftShiftBinaryStr, 2);

        //二进制表示后 右移是在把最后一个数字去掉 题目右移了左次
        String afterRightShiftBinaryStr;
        if (binaryString.length() <= 2) {
            afterRightShiftBinaryStr = "0";
        } else {
            afterRightShiftBinaryStr = binaryString.substring(0, binaryString.length() - 2);
        }
        int afterRightShiftBinaryInt = Integer.parseInt(afterRightShiftBinaryStr, 2);

        System.out.println("a的二进制表示为:" + binaryString);
        System.out.println("a << 2 =" + afterLeftShiftBinaryInt + "(" + afterLeftShiftBinaryStr + ")");
        System.out.println("a >> 2 =" + afterRightShiftBinaryInt + "(" + afterRightShiftBinaryStr + ")");
    }
    public static void intToBinaryStr(int a) {
        System.out.println("输入正整数a:" + a);
        System.out.println("a的二进制表示为:" + Integer.toBinaryString(a));
        int left = a << 2;
        System.out.println("a<<2 =" + left + "(" + Integer.toBinaryString(left) + ")");
        int right = a >> 2;
        System.out.println("a>>2 =" + right + "(" + Integer.toBinaryString(right) + ")");
    }
推荐问题
宣传栏