Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有八进制和十六进制值的整数及其运算_Java - Fatal编程技术网

Java 具有八进制和十六进制值的整数及其运算

Java 具有八进制和十六进制值的整数及其运算,java,Java,我是java初学者,我对java有一个疑问,我想澄清一下 我们可以用十六进制或八进制值初始化整型变量,但当我们在屏幕上显示值(十六进制或八进制)时,它会以十进制值显示。如何使输出以八进制或十六进制显示 public static void main(String[] args) { int a, b; a = 0xA1; b = 07; System.out.println("a = " + a); System.o

我是java初学者,我对java有一个疑问,我想澄清一下

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

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

另外,请向我解释两个不同基数的整数(八进制和十六进制之间)之间的加法是如何进行的,基数之间是否有任何转换,以及两个不同基数的整数相加后得到的数字基数是多少?

就像在c中一样,您可以在java中这样做

System.out.printf("%x", a) 
这将输出十六进制格式

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

将数值赋给变量时,编译器会将您在源文件中键入的可读数字表示形式转换为内部数字表示形式

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

作为开发人员,您可以决定程序是否应该以其他形式输出数字,如十六进制、八进制或二进制。 因此,如果您希望数字以与输入数字相同的表示形式输出,那么您必须在运行时提供一些信息。
语言本身不支持这一要求。

以下是以十进制显示的输出,单位为decimala=161 b=7 a+b=167。至于您关于是否会发生任何“转换”的问题:不,显然,在您的计算机中,数字都将以二进制格式存储。欢迎使用堆栈溢出。请不要将你的代码作为截图发布;最好使用代码标签,这样人们就可以轻松地复制和粘贴代码来测试它,以及类似的功能。此外,图像服务通常被公司防火墙阻止,因此您将减少能够帮助您的人数。关于如何帮助别人给你好答案的其他建议,请阅读《谢谢你帮助我》,但是,您能告诉我一些额外的信息吗?我想在运行时提供这些信息,以获得以与我输入的相同表示形式输出的数字。@USer您需要一个额外的变量来存储这些信息。但更有趣的问题是:你真的需要这些信息吗?是否确实要根据编译时输入值的格式更改运行时输出?您不想根据变量的语义进行输出吗?谢谢您的解释。你能不能请我更具体地说明应该在另一个(附加)变量中给出的附加信息。如果可能,请用代码解释。