具有八进制和十六进制值的整数及其操作

时间:2017-07-17 09:44:40

标签: java

我是java的初学者,我想在java中提出疑问,我想澄清一下。

我们可以使用十六进制或八进制值初始化整数变量,但是当我们在屏幕上显示值(使用hexa或octal)时,它将以十进制值显示。我们如何使输出以八进制或十六进制显示?

public static void main(String[] args) {
        int a, b;
        a = 0xA1;
        b = 07;
        System.out.println("a = " + a);
        System.out.println("b = " + b);
        System.out.println("a + b = " + (a + b));
}

我期待的是当我在变量a中显示值时,它应该显示其指定的八进制值0XA1 请帮帮我 输出:

a = 161
b = 7
a + b = 168

还请解释我如何在两个整数个不同的碱基(八进制和十六进制之间)之间进行添加,碱基之间是否会有任何转换,以及由于添加两个碱基而产生的数字基数是多少?不同基数的整数?

2 个答案:

答案 0 :(得分:2)

Java(与任何其他编程语言一样)使用基于2(二进制)的内部数字表示

当您为变量分配数值时,编译器会将您在源文件中输入的人类可读数字表示转换为内部数字表示

当您输出存储在变量中的数字时,运行时会将此数字转换回人类可读数字表示。 由于有一些默认使用最常见的(十进制数字)。

您作为开发人员决定程序是否应该输出其他表示形式的数字,如 hex octal binary 。 因此,如果您希望以与输入相同的表示形式输出数字,则必须在运行时提供一些信息。 语言本身不支持此要求。

答案 1 :(得分:0)

与c类似,您可以在java中执行此操作

System.out.printf("%x", a) 

这将输出十六进制格式