用java比较两个相同进制(2进制~16进制)的数值大小。从键盘上输入两个正确(数码符合当前进制)的相同进制的数值字符串(不带正负号,可以有小数点),比较大小,输出“大于”、“小于”或者“等于”。注意:设计的算法与具体的进制无关。
时间: 2023-02-09 08:55:18 浏览: 130
在 Java 中,可以使用 java.math.BigDecimal 类来比较两个相同进制的数值大小。
首先,使用 java.math.BigDecimal 的构造函数将字符串转换为 BigDecimal 对象:
BigDecimal num1 = new BigDecimal("123.45");
BigDecimal num2 = new BigDecimal("678.90");
然后,使用 compareTo() 方法比较两个数值的大小:
if (num1.compareTo(num2) > 0) {
System.out.println("num1 大于 num2");
} else if (num1.compareTo(num2) < 0) {
System.out.println("num1 小于 num2");
} else {
System.out.println("num1 等于 num2");
}
注意,compareTo() 方法返回的是整数,如果 num1 大于 num2,则返回正数;如果 num1 小于 num2,则返回负数;如果 num1 等于 num2,则返回 0。
上面的代码假设两个数值的进制都是十进制。如果两个数值的进制不同,则需要先将它们转换为十进制,然后再使用 compareTo() 方法进行比较。
相关问题
从屏幕输入2个十进制数,分别调用两个子函数转为八进制和16进制输出JAVA
好的,以下是实现要求的Java代码:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 从屏幕输入两个十进制数
System.out.print("请输入第一个十进制数:");
int num1 = scanner.nextInt();
System.out.print("请输入第二个十进制数:");
int num2 = scanner.nextInt();
// 调用函数将第一个数转为八进制并输出
String octal1 = toOctalString(num1);
System.out.println(num1 + " 的八进制表示是:" + octal1);
// 调用函数将第二个数转为十六进制并输出
String hex2 = toHexString(num2);
System.out.println(num2 + " 的十六进制表示是:" + hex2);
}
// 将十进制数转为八进制
public static String toOctalString(int num) {
return Integer.toOctalString(num);
}
// 将十进制数转为十六进制
public static String toHexString(int num) {
return Integer.toHexString(num);
}
}
```
运行程序后,可以按照提示输入两个十进制数,程序会分别将它们转为八进制和十六进制,并输出结果。
java 从屏幕输入2个十进制数,分别调用两个子函数转为八进制和16进制输出。
以下是Java代码实现:
```java
import java.util.Scanner;
public class DecimalToOctalAndHexadecimal {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入第一个十进制数:");
int n1 = input.nextInt();
System.out.print("请输入第二个十进制数:");
int n2 = input.nextInt();
System.out.println("第一个数的八进制表示为:" + decimalToOctal(n1));
System.out.println("第一个数的十六进制表示为:" + decimalToHexadecimal(n1));
System.out.println("第二个数的八进制表示为:" + decimalToOctal(n2));
System.out.println("第二个数的十六进制表示为:" + decimalToHexadecimal(n2));
}
// 十进制转八进制
public static String decimalToOctal(int decimal) {
return Integer.toOctalString(decimal);
}
// 十进制转十六进制
public static String decimalToHexadecimal(int decimal) {
return Integer.toHexString(decimal);
}
}
```
运行结果示例:
```
请输入第一个十进制数:123
请输入第二个十进制数:456
第一个数的八进制表示为:173
第一个数的十六进制表示为:7b
第二个数的八进制表示为:710
第二个数的十六进制表示为:1c8
```