当前位置: 首页 > 知识库问答 >
问题:

如何找到给定的数字是八进制还是不八进制?

邵伟
2023-03-14

在这个例子中,我找到了三位数的八进制数,我使用了冗长的if条件,谁能减少if语句和赋值。注意不要使用预先定义的过程或内置的包..

import java.util.Scanner;
class octdec
{
public static void main(String arg[])
    {
    int back=0;
    do
        {
        Scanner ip = new Scanner(System.in);
        int no,mod1,mod2,mod3,diff1,diff2,diff3,num1,num2,num3;
        System.out.print("Enter Octal No upto 3 digits : ");
        no=ip.nextInt();
        mod1=no%10;
        mod2=no%100;
        mod3=no%1000;
        diff1=no-mod1;
        diff2=no-mod2;
        diff3=no-mod3;
        num1=diff1/10;
        num2=diff2/100;
        num3=diff3/1000;
        if(no==8||no==9||mod1==8||mod1==9||mod2==8||mod2==9||mod3==8||mod3==9||num1==8||num1==9||num2==8||num2==9||num3==8||num3==9)
        System.out.println("Invaild Octal Nimber ");
        else
        System.out.println("Vaild Octal Nimber :"+no);
        }
    while(back==0);
    }
}

共有3个答案

景靖琪
2023-03-14

请尝试ip.nextInt(8)
这将确保输入值必须为八进制,但返回输入八进制值的十进制值

屠和洽
2023-03-14

您可以解析传递基数的数字,如下所示

    try{
         String number="30";
         int i=Integer.parseInt(number,8); // returns the integer represented by the  string argument in the specified radix.

         System.out.println("Octal Number");
       }  catch(NumberFormatException e)  {
           System.out.println("Not an octal number");
       }

如果给定的数字不是八进制,则抛出 NumberFormatException。

这里8是代表基数或基数的八进制数

於宏大
2023-03-14

可以使用以下正则表达式仅匹配八进制数:

  ^0[1-7][0-7]*$
  • ^,$:锚
  • 0:文字0。所有八进制数字都以0开头。
  • [1-7]:字符类用于从1到7的数字,因为只有这些是有效的八进制数字
  • *:前一个事物的零个或多个的量词

所以基本上这个正则表达式只匹配那些开头有0并且包含从1到7的一个或多个数字的字符串。

如果前导0要求不存在,则可以使用正则表达式:

^[1-7][0-7]*$
 类似资料:
  • 问题内容: 是 00、000或000 … Java中的整数?还是八进制?如果是八进制是 001或0005 八进制? 问题答案: 都是整数 ,但是… 从Java语言规范(重点是我的): 请注意, 八进制数字始终由两个或多个数字组成; 始终将0视为十进制数字 -在实际中并不重要,因为数字0、00和0x0都表示完全相同的整数值。

  • 主要内容:二进制数、八进制数和十六进制数的表示,二进制数、八进制数和十六进制数的输出C语言中的整数除了可以使用十进制,还可以使用二进制、八进制和十六进制。 二进制数、八进制数和十六进制数的表示 一个数字默认就是十进制的,表示一个十进制数字不需要任何特殊的格式。但是,表示一个二进制、八进制或者十六进制数字就不一样了,为了和十进制数字区分开来,必须采用某种特殊的写法,具体来说,就是在数字前面加上特定的字符,也就是加前缀。 1) 二进制 二进制由 0 和 1 两个数字组成,使用时必须以

  • 本文向大家介绍如何将八进制转换为二进制?,包括了如何将八进制转换为二进制?的使用技巧和注意事项,需要的朋友参考一下 八进制数是基数为8的数字系统之一,这意味着只有8个符号−0、1、2、3、4、5、6和7。而二进制数是数字系统、网络和计算机专业人员最熟悉的数字系统。基2只有2个符号−0和1,这些数字可以分别用off和on表示。 从八进制转换为二进制数制 将八进制数转换成二进制数有多种直接或间接的方法

  • 主要内容:二进制,八进制,十六进制我们平时使用的数字都是由 0~9 共十个数字组成的,例如 1、9、10、297、952 等,一个数字最多能表示九,如果要表示十、十一、二十九、一百等,就需要多个数字组合起来。 例如表示 5+8 的结果,一个数字不够,只能”进位“,用 13 来表示;这时”进一位“相当于十,”进两位“相当于二十。 因为逢十进一(满十进一),也因为只有 0~9 共十个数字,所以叫做 十进制(Decimalism)。十进

  • 本文向大家介绍如何将小数转换为八进制?,包括了如何将小数转换为八进制?的使用技巧和注意事项,需要的朋友参考一下 十进制是公众最熟悉的数字系统。它是基数10,只有10个符号-0、1、2、3、4、5、6、7、8和9。而八进制是表示数字的数字系统之一。它是基数8,只有8个符号-0、1、2、3、4、5、6和7。 从十进制转换为八进制数字系统 有多种直接或间接的方法可以将十进制数转换为八进制数。在间接方法中

  • Python3 实例 以下代码用于实现十进制转二进制、八进制、十六进制: # -*- coding: UTF-8 -*- # Filename : test.py # author by : www.runoob.com # 获取用户输入十进制数 dec = int(input("输入数字:")) print("十进制数为:", dec) print("转换为二进制为:", bin(dec