0

谁能告诉我这两者的区别?看起来相似但输出不同

    int b = 80 ;
    int a = Integer.parseInt(""+b, 16);
    int c = Integer.parseInt(Integer.toHexString(b));
4

3 回答 3

4

int a = Integer.parseInt(""+b, 16)解释"80"为以 16 为底的数字并将 a 设置为其值(128以 10 为底)。

int c = Integer.parseInt(Integer.toHexString(b))首先80以 10 为底转换为以 16 为底的数字(即50),然后将其解释为以 10 为底的数字,即50

于 2012-09-13T20:41:02.233 回答
0

第一个表达式Integer.parseInt(""+b, 16)将值 80 解析为十六进制数 (0x80),得到十进制数 128。

第二个表达式Integer.parseInt(Integer.toHexString(b))首先将十进制数 80 转换为十六进制 ( Integer.toHexString(b)),得到十六进制数 50 (0x50),然后将其解析为十进制数,得到十进制数 50。

于 2012-09-13T20:45:46.763 回答
0

一个转换为十进制并将其解析为十六进制。

另一个转换为十六进制并将其解析为十进制。

如果它没有任何意义,那是一件好事。;)

于 2012-09-13T20:41:39.270 回答