开发者社区> 问答> 正文

java用户输入一个[0, 511]范围内的数字,计算其对应的二进制数字,并用字符H(代表0)

java用户输入一个[0, 511]范围内的数字,计算其对应的二进制数字,并用字符H(代表0)

展开
收起
知与谁同 2018-07-16 13:49:21 2006 0
1 条回答
写回答
取消 提交回答
  • 云栖社区聚能聊、问答管理员~发福利、搞怪,八卦我来,论技术、发话题、写博客你上!
    public class Test {

        public static void main(String[] args) throws IOException {
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入0到511之间的一个整数:");
            int num = scanner.nextInt();
            while (num < 0 || num > 511) {
                System.out.println("输入的数字不在[0,511]的范围,请重新输入");
                num = scanner.nextInt();
            }

            // 直接用自带的转二进制的方法,然后将0替换成H
            String binaryString = Integer.toBinaryString(num); //
            binaryString = binaryString.replaceAll("0", "H");
            System.out.println(binaryString);

            // 自己写算法计算并用H代替0
            String binary = "";
            while (num > 0) {
                int i = num % 2;
                if (i == 0) {
                    binary = "H" + binary;
                } else {
                    binary = "1" + binary;
                }
                num = num / 2;
            }
            System.out.println(binary);
        }
    }

    2019-07-17 22:57:46
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载