进制数字的输入和输出

2023-11-12

写个程序 , 它读取一个整数并以二进制, 八进制, 和十六进制输出, 以十六进制浮点数输出倒数

public class test1 {
    public static void main(String[] args) {
        //写个程序, 它读取一个整数并以二进制, 八进制, 和十六进制输出, 以十六进制浮点数输出倒数
        Scanner input = new Scanner(System.in);
        int a;
        a = input.nextInt();
        System.out.println(Integer.toString(a,2));
        System.out.println(Integer.toString(a,8));
        System.out.println(Integer.toString(a,16));

        System.out.println(Double.toHexString(1.0/a));
    }
}

有两种方法, 第一种方法就是我们使用这个 Interger. ToStirng 但是这种方法呢只能用来处理整数型, 对于这个浮点型的话, 没有太好的处理办法, 我们可以通过这个
toBinaryString , toOctalString, toHexString 三种包装类内置的方法来进行转化
如果想要读取二进制和八进制十六进制的话我们可以通过这个 parseint 来进行转化, 但是这种转化虽然能够实现目标, 但是当你输入非法数字的时候并不能很好的进行处理, 比如你输入八进制的时候你输入了 9

import java.util.Scanner;

public class NumberReader {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 读取八进制数字
        System.out.print("请输入一个八进制数字:");
        String octalInput = scanner.next();
        int octalNumber = Integer.parseInt(octalInput, 8);
        System.out.println("读取的八进制数字为:" + octalNumber);

        // 读取二进制数字
        System.out.print("请输入一个二进制数字:");
        String binaryInput = scanner.next();
        int binaryNumber = Integer.parseInt(binaryInput, 2);
        System.out.println("读取的二进制数字为:" + binaryNumber);

        // 读取十六进制数字
        System.out.print("请输入一个十六进制数字:");
        String hexInput = scanner.next();
        int hexNumber = Integer.parseInt(hexInput, 16);
        System.out.println("读取的十六进制数字为:" + hexNumber);
    }
}

在 Java 中,没有直接内置的方法可以直接读取二进制和八进制数字。但是,你可以使用正则表达式来验证输入是否是有效的二进制或八进制数字,并进行相应的转换。在读取到非法字符时,你可以抛出异常来处理。
以下是一个示例程序,演示了如何使用正则表达式进行验证和异常处理:

import java.util.Scanner;

public class NumberReader {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 读取八进制数字
        System.out.print("请输入一个八进制数字:");
        String octalInput = scanner.next();
        try {
            int octalNumber = readOctalNumber(octalInput);
            System.out.println("读取的八进制数字为:" + octalNumber);
        } catch (IllegalArgumentException e) {
            System.out.println("输入的不是有效的八进制数字。");
        }

        // 读取二进制数字
        System.out.print("请输入一个二进制数字:");
        String binaryInput = scanner.next();
        try {
            int binaryNumber = readBinaryNumber(binaryInput);
            System.out.println("读取的二进制数字为:" + binaryNumber);
        } catch (IllegalArgumentException e) {
            System.out.println("输入的不是有效的二进制数字。");
        }
    }

    // 读取并验证八进制数字
    private static int readOctalNumber(String input) {
        if (!input.matches("[0-7]+")) {
            throw new IllegalArgumentException();
        }
        return Integer.parseInt(input, 8);
    }

    // 读取并验证二进制数字
    private static int readBinaryNumber(String input) {
        if (!input.matches("[01]+")) {
            throw new IllegalArgumentException();
        }
        return Integer.parseInt(input, 2);
    }
}

在这个示例中,我们使用 matches() 方法来检查输入字符串是否与指定的正则表达式匹配。如果字符串不是有效的八进制或二进制数字,则抛出 IllegalArgumentException 异常。否则,我们将字符串转换为整数进行输出。

初次之外我们还以用格式化符号来进行输出

public static void exe1(int n) {
    	System.out.printf("十进制输出%d\n",n);
		System.out.printf("二进制输出"+Integer.toBinaryString(n)+"\n");
		System.out.printf("十六进制输出"+"%x\n",n);
		System.out.printf("八进制输出%o\n",n);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

进制数字的输入和输出 的相关文章

随机推荐

  • 软考-信息管理——学习笔记_证

    前言 学习方法 应该达到 按照一级标题进行默写罗列 再默写二级标题默写罗列 最后按三级标题及知识点进行罗列 合同和法律篇 中标通知书发送30天内需签订合同 标底保密 招标文件发布起到截止日不得少于20天 不用招标的场景 需要采用不可代替的专
  • Eolink 旗下网关产品各版本功能及性能对比

    GoKu 网关提供企业版 EE 与开源版 CE 两个版本 满足不同阶段用户对于微服务的需求 两个版本均支持 私有云部署 开源版 CE 目前已停止维护 Apinto 开源版本是 Goku 开源版 CE 的一次架构升级 经过前面几年的网关架构和
  • 图像识别技术

    目录 1 什么是图像识别 2 图像识别的发展过程 3 图像识别的原理 4 图像识别的应用领域 5 图像识别未来的发展趋势 1 什么是图像识别 图像识别 又称为计算机视觉 是指利用计算机和人工智能技术对图像进行分析和理解 以自动识别和分类图像
  • Java并发之锁

    Java并发之锁 一 临界区 二 线程安全 三 解决临界区线程安全问题 四 Java对象头 五 重量级锁 Monitor 5 1 synchronized 5 1 1 synchronized加锁流程 六 轻量级锁 6 1 轻量级锁加锁流程
  • 信息收集的一些文件泄露

    1 robots txt文件泄露 放在网站的跟目录下 用于限制浏览器的访问 哪些可以抓取 哪些不能抓取 用于防止黑客 但是任何人可在url中直接通过 robots txt访问 导致网站结构被泄露 可对admin等重要文件设置密保保护 或者采
  • 【Python打包成exe方法】——已解决导入第三方包无法打包的问题​

    前言 在我们写代码的过程中 我们开发的脚本一般都会用到一些第三方包 可能别人也需要用到我们的脚本 如果我们将我们的xx py文件发给他 他是不能直接用的 他还需要安装python解释器 甚至还要安装我们用的那些第三方包 是不是有点小麻烦 但
  • Openmmlab(一)

    计算机视觉为研究如何自动理解图像和视频中的内容 运用于图像识别 人脸识别 计算机视觉应用 动漫特效 图像生成 风格迁移 虚拟主播 视频自动剪辑等 今日的计算机视觉 文字描述生成图片 视觉大模型 神经渲染CityNeRF 开源成为人工智能领域
  • js逆向webpack

    扣代码会遇到的基本2种形式 1 webpack function x 这里的x是存放模块1 模块2那个数组 function xx yy yy是存放模块1 模块2的数组下标 x yy call 模块参数1 模块参数2 模块参数3 必有一个加
  • 双系统ubuntu20.04(neotic版本)从0实现Gazebo仿真slam建图

    双系统ubuntu20 04 neotic版本 从0实现Gazebo仿真slam建图 昨晚完成了ROS的多机通讯 还没来得及整理相关操作步骤 在进行实际小车的实验之前 还是先打算在仿真环境中进行测试 熟悉相关的操作步骤 计划通过虚拟机 笔记
  • 【实验分享】CCIE—BGP反射器实验

    实验目的 l掌握BGP反射器的运行原理 l理解反射器的用途以及好处 实验说明 l通过此实验练习 可以灵活的使用BGP反射器 实验环境 l三台支持SPSERVICES的IOS的路由器 l直通线 实验拓扑 实验步骤 R1 config inte
  • alibaba fastjson jsonarray转list

    String avatar teacherEntity getAvatar if StringUtils isEmpty avatar List
  • Python——元类

    作者 小明 链接 https zhuanlan zhihu com p 30861351 来源 知乎 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 什么是元类 理解元类 metaclass 之前 我们先了解下Pytho
  • 阿里云轻量级服务器部署网站 安装java+tomcat+Mysql

    网上关于部署服务器的教程已经是数不胜数 按理来说不应该重复造轮子 但是网上的教程没有很好的整合文章 于是乎笔者本着写一篇整合性 参考性比较强的角度出发写了这篇文章 本文详细写了阿里云轻量级服务器的安装jdk tomcat mysql部署简单
  • Window 10 系统 在命令行中输入python会跳转到商店问题解决

    在Windows 10 中配置了python的环境变量 但是在命令行中输入python会跳转到商店 这是由于在环境变量中path配置了 USERPROFILE AppData Local Microsoft WindowsApps 导致 只
  • 东北大学acm训练第五周

    include
  • mysql using filesort

    今天在explain一个MySQL的sql语句的时候 产生了 如下的结果 extra那一栏多了一个Using filesort 而却type也是ALL这说明了查询的结果是全表扫描 可是笔者明明就在 public time字段加了索引 然而笔
  • 只通过com.alibaba.fastjson.JSONArray实现okHttp下String转换JSONArray

    我的Android不能导入常见的那六个包 会严重报错 我改了很久很久还是不能解决错误 也就不能使用net sf包中的JSONArray 直接使用new JSONArray str 给像我一样不能导入包的同学介绍一种方法 import com
  • 浅谈 js reduce()

    reduce 为数组中的每一个元素依次 执行回调函数 不包括数组中被删除的元素或者未赋值的元素 接受四个参数 初始值 或者上次回调函数的返回值 当前元素值 当前索引 调用reduce的数组 语法 arr reduce function pr
  • 在电脑上安装虚拟机

    百度搜索一下 VMware Workstation 下载安装完成之后 找个破解码破解了即可 然后就下载对应的操作系统的iso文件 加载到虚拟机中即可
  • 进制数字的输入和输出

    写个程序 它读取一个整数并以二进制 八进制 和十六进制输出 以十六进制浮点数输出倒数 public class test1 public static void main String args 写个程序 它读取一个整数并以二进制 八进制