Literais hexadecimais

Bom dia

Pessoal, não consegui entender esse topico do livro da kathy sierra : literais hexadecimais.

pq isso:

int y = 0x7fffffff;

vira isso:

2147483647

se vai até 15 desta forma:

0 1 2 3 4 5 6 7 8 9 a b c d e f

já procurei na intenet, mas mesmo assim não consegui entender…
alguem me explica por favor

obrigada

[quote=giselezr]Bom dia
Pessoal, não consegui entender esse topico do livro da kathy sierra : literais hexadecimais.
pq isso:
int y = 0x7fffffff;
vira isso:
2147483647
se vai até 15 desta forma:
0 1 2 3 4 5 6 7 8 9 a b c d e f
já procurei na intenet, mas mesmo assim não consegui entender…
alguem me explica por favor
obrigada
[/quote]

A literal que se inicia com o prefixo 0x significa que este valor está na base 16, ou seja, no sistema de numeração haxadecimal.

int y = 0x7fffffff;

Abaixo os calculos para conversão da base 16 (hexadecimal) para base 10 (decimal).

7*16^7 + F*16^6 + F*16^5 + F*16^4 + F*16^3 + F*16^2 + F*16^1 + F*16^0
7*16^7 + 15*16^6 + 15*16^5 + 15*16^4 + 15*16^3 + 15*16^2 + 15*16^1 + 15*16^0
7*268435456 + 15*16777216 + 15*1048576 + 15*65536 + 15*4096 + 15*256 + 15*16 + 15*1
2147483647

Veja o link abaixo detalhes do Sistema de numeração hexadecimal.