gpt4 book ai didi

java - 十六进制数与二进制数相加

转载 作者:行者123 更新时间:2023-12-01 07:26:39 25 4
gpt4 key购买 nike

我试图理解以下程序输出的原因。

public class CrossAddition{
public static void main(String[] args){
int decimal = 267;
int octalValue = 0413;
int hexadecimalValue = 0X10B;
int binValue = 0b100001011;
System.out.println("Decimal plus octal = "+ decimal+octalValue);//267267
System.out.println("HexaDecimal plus binary = "+ hexadecimalValue+binValue);//267267
}
}

这是我对这个问题的分析第一个 sysout 中的八进制值转换为十进制,即,octalVlaue 0413 的十进制值是 267。现在 267+267 应该是 534。但在这里,第一个 sysout 的输出是 267267。

第二个sysout,hexadecimalValue 0X10B首先转换为十进制,输出267。然后,binValue转换为十进制,输出267。现在267+267应该是534,但事实并非如此,显示267267。

其工作原理类似于字符串连接。我该如何理解这一点?

最佳答案

使用如下

System.out.println("Decimal plus octal = "+ (decimal+octalValue));
System.out.println("HexaDecimal plus binary = "+ (hexadecimalValue+binValue));

“十进制加八进制=”+十进制+八进制被处理为String(“十进制加八进制=”)+ String(deimal)+String(octalValue)并且这就是问题所在。

你更想要类似的东西 String("Decimal plus Octal = ")+ String(deimal + OctalValue)

关于java - 十六进制数与二进制数相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23380859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com