谁能告诉我这两者之间的区别?看起来相似,但输出不同
int b = 80 ;
int a = Integer.parseInt(""+b, 16);
int c = Integer.parseInt(Integer.toHexString(b));
答案 0 :(得分:4)
int a = Integer.parseInt(""+b, 16)
将"80"
解释为基数为16的数字,并将其设置为其值(基数为10 128
)。
int c = Integer.parseInt(Integer.toHexString(b))
首先将基数10中的80
转换为基数16(即50
),然后将其解释为基数10中的数字,即50
。
答案 1 :(得分:0)
一个转换为十进制并将其解析为hexi-decimal。
另一个转换为hexi-decimal并将其解析为十进制。
如果它没有任何意义,这是一件好事。 ;)
答案 2 :(得分:0)
第一个表达式Integer.parseInt(""+b, 16)
将值80解析为十六进制数(0x80),得到十进制数128.
第二个表达式Integer.parseInt(Integer.toHexString(b))
首先将十进制数80转换为十六进制(Integer.toHexString(b)
),得到十六进制数50(0x50),然后将其解析为十进制数,得到十进制数50。