进制数字的输入和输出

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(使用前将#替换为@)

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

  • 位图内存不足错误

    我对这个错误有疑问 我从 URL 制作网站图标解析器 我这样做是这样的 public class GrabIconsFromWebPage public static String replaceUrl String url StringB
  • JavaFX 图像未在舞台中显示

    我尝试了很多次 尝试了很多方法 但都无法让自己的形象在舞台上如我所愿 我认为这可能与java寻找资源的路径有关 但我不确定 因为我刚刚开始使用视觉库 在本例中为JavaFX 这是我的目录结构 MyProject assets img myI
  • 无法在类对象的 ArrayList 中存储值。 (代码已编辑)

    这基本上是一个 Java 代码转换器 它涉及一个 GUI 让用户输入类类型 名称和方法 为了存储值 我创建了一个类VirtualClass与ArrayList
  • 如何开始使用 Chainsaw for Log4j?

    我想开始使用 Chainsaw v2 几乎没有关于它的信息 我只找到了this http www velocityreviews com forums t140105 help using chainsaw for log4j html 但
  • 如何比较 Struts 2 中 url 请求参数中的单个字符

    我正在读取具有单个字符的 url 参数 它将是Y or N 我必须写一个条件来检查它是否Y or N并做相应的事情 这是我写的 但似乎不起作用 总是转到其他地方 网址是
  • 正则表达式获取字符串中的第一个数字和其他字符

    我是正则表达式的新手 想知道如何才能只获取字符串中的第一个数字 例如100 2011 10 20 14 28 55 在这种情况下 我希望它返回100 但该数字也可以更短或更长 我在想类似的事情 0 9 但它单独获取每个数字 100 2001
  • 是否有任何API可以将Microsoft Exchange服务器与Java应用程序集成以进行任务同步?

    我正在尝试将 Java Web 应用程序与 Microsoft Exchange 服务器集成以实现双向日历 即任务 同步 是否有用于此集成的 Java 开源 商业 API 谢谢 文卡特 看一眼j 交易所 http sourceforge n
  • 字符串池可以包含两个具有相同值的字符串吗? [复制]

    这个问题在这里已经有答案了 字符串池可以包含两个具有相同值的字符串吗 String str abc String str1 new String abc Will the second statement with new operator
  • 有多少种方法可以将位图转换为字符串,反之亦然?

    在我的应用程序中 我想以字符串的形式将位图图像发送到服务器 我想知道有多少种方法可以将位图转换为字符串 现在我使用 Base64 格式进行编码和解码 它需要更多的内存 是否有其他可能性以不同的方式做同样的事情 从而消耗更少的内存 现在我正在
  • Java-如何将黑白图像加载到二进制中?

    我在 FSE 模式下使用 Java 和 swing 我想将完全黑白图像加载为二进制格式 最好是二维数组 并将其用于基于掩码的每像素碰撞检测 我什至不知道从哪里开始 过去一个小时我一直在研究 但没有找到任何相关的东西 只需将其读入Buffer
  • 从 @JsonProperty 值获取枚举常量

    我有一个标有 JsonProperty 的枚举 用于使用 Jackson 进行 JSON 序列化 反序列化 并且希望获取给定字符串 JsonProperty 的枚举值 public enum TimeBucket JsonProperty
  • 异步迭代器

    我有以下代码 while slowIterator hasNext performLengthTask slowIterator next 由于迭代器和任务都很慢 因此将它们放入单独的线程中是有意义的 这是对迭代器包装器的快速而肮脏的尝试
  • 在 IntelliJ 中运行 Spring Boot 会导致 Unable to load 'javax.el.E​​xpressionFactory'

    我正在尝试运行一个简单的 Spring Boot 应用程序 该应用程序具有以下 Maven pom file
  • Jenkins 的代码覆盖率 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Java 中将弯音发送到 MIDI 音序器

    我了解启动和运行 MIDI 音序器的基础知识 并且希望能够在播放过程中增加 减小序列的音高 但弯音是发送到合成器而不是音序器的消息 我尝试将音序器的接收器设置为合成器的发射器 当我发送弯音短消息时 音序器保持相同的音调 但随后合成器以新的弯
  • JSch中如何设置文件类型和文件传输模式?

    我使用 Apache Common NetFTPClient并设置了我的ftpClient在上传文件之前使用如下所示的方法 ftpClient setFileType FTP BINARY FILE TYPE ftpClient setFi
  • 如何在Java媒体框架中学习.wav持续时间?

    我正在尝试使用 java 媒体框架将 mov 文件与 wav 文件合并 因此我需要知道它们的持续时间 我怎样才能做到这一点 任何想法 将不胜感激 您可以使用以下方式了解声音文件的持续时间 即 VitalyVal 的第二种方式 import
  • 了解 Spark 中的 DAG

    问题是我有以下 DAG 我认为当需要洗牌时 火花将工作划分为不同的阶段 考虑阶段 0 和阶段 1 有些操作不需要洗牌 那么为什么 Spark 将它们分成不同的阶段呢 我认为跨分区的实际数据移动应该发生在第 2 阶段 因为这里我们需要cogr
  • 使用 secp256r1 曲线和 SHA256 算法生成 ECDSA 签名 - BouncyCastle

    我正在尝试使用带有 secp256r1 曲线 P256 的 ECDSA 和用于消息哈希的 SHA256 算法生成签名 我也在使用 Bouncy Castle 库 下面的代码 public class MyTest param args pu
  • 如何解决 PDFBox 没有 unicode 映射错误?

    我有一个现有的 PDF 文件 我想使用 python 脚本将其转换为 Excel 文件 目前正在使用PDFBox 但是存在多个类似以下错误 org apache pdfbox pdmodel font PDType0Font toUnico

随机推荐

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

    前言 学习方法 应该达到 按照一级标题进行默写罗列 再默写二级标题默写罗列 最后按三级标题及知识点进行罗列 合同和法律篇 中标通知书发送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 写个程序 它读取一个整数并以二进制 八进制