java十进制、二进制、八进制、十六进制的书写格式
时间: 2024-06-24 07:02:28 浏览: 251
在Java中,数字的书写格式取决于其表示的基数,也就是进制系统。下面是各种进制的书写规则:
1. **十进制(Decimal)**:这是最常见的,我们通常使用阿拉伯数字0-9来表示数值,没有特定的书写格式,例如:`int number = 123;`
2. **二进制(Binary)**:用0和1表示,前缀通常不写,如`byte binary = 0b1010;` 或者 `0101`,但在某些编程上下文中,可能会用`0b`或`0x`作为前缀,如`0b1010`。
3. **八进制(Octal)**:用0-7表示数值,前缀通常是`0o`,如`int octal = 0o728;` 或者 `0728`。请注意,Java中的八进制数超过三位会被解析为十六进制。
4. **十六进制(Hexadecimal)**:用0-9和A-F(或a-f)表示,前缀通常是`0x`,如`byte hex = 0xFF;` 或者 `0xff`。在Java中,十六进制数超过两位会被解析为十六进制。
在Java中,对于数字字面量,如果不指定前缀,编译器会默认为十进制。如果需要其他进制,必须显式写出相应的前缀。
相关问题
从键盘输入两整数m和n,显示[m,n]之间的十进制二进制八进制十六进制对照表,输入25 31效果如下图。要求不许使用系统提供的进制转换函数。验证理解栈的使用,函数一次书写多次调用的妙用。对齐用\t。java
以下是Java代码实现:
```java
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入两个整数m和n(以空格隔开):");
int m = input.nextInt();
int n = input.nextInt();
System.out.println("十进制\t二进制\t八进制\t十六进制");
for (int i = m; i <= n; i++) {
System.out.println(i + "\t" + toBinary(i) + "\t" + toOctal(i) + "\t" + toHexadecimal(i));
}
}
// 十进制转二进制
public static String toBinary(int num) {
String binary = "";
Stack<Integer> stack = new Stack<Integer>();
while (num != 0) {
stack.push(num % 2);
num /= 2;
}
while (!stack.isEmpty()) {
binary += stack.pop();
}
return binary;
}
// 十进制转八进制
public static String toOctal(int num) {
String octal = "";
Stack<Integer> stack = new Stack<Integer>();
while (num != 0) {
stack.push(num % 8);
num /= 8;
}
while (!stack.isEmpty()) {
octal += stack.pop();
}
return octal;
}
// 十进制转十六进制
public static String toHexadecimal(int num) {
String hexadecimal = "";
Stack<Character> stack = new Stack<Character>();
int remainder;
while (num != 0) {
remainder = num % 16;
if (remainder < 10) {
stack.push((char) (remainder + '0'));
} else {
stack.push((char) (remainder - 10 + 'A'));
}
num /= 16;
}
while (!stack.isEmpty()) {
hexadecimal += stack.pop();
}
return hexadecimal;
}
}
```
运行结果如下:
```
请输入两个整数m和n(以空格隔开):25 31
十进制 二进制 八进制 十六进制
25 11001 31 19
26 11010 32 1A
27 11011 33 1B
28 11100 34 1C
29 11101 35 1D
30 11110 36 1E
31 11111 37 1F
```
阅读全文