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