これら2つの違いを教えてもらえますか?見た目は似てるけど出力が違う
int b = 80 ;
int a = Integer.parseInt(""+b, 16);
int c = Integer.parseInt(Integer.toHexString(b));
これら2つの違いを教えてもらえますか?見た目は似てるけど出力が違う
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を16進数(0x80)として解析しているため、10進数は128になります。
2番目の式Integer.parseInt(Integer.toHexString(b))
は、最初に10進数80を16進数(Integer.toHexString(b)
)に変換して16進数50(0x50)にし、次に10進数として解析して10進数50にします。
1 つは 10 進数に変換され、16 進数として解析されます。
もう 1 つは 16 進数に変換し、10 進数として解析します。
意味がないならそれでいい。;)