Öncelikle literal nedir ona bi bakalım.
int x = 12;
burada 12 , 12 değerini tutan bir integer literalidir.
float f = 3.4f;
burada 3.4f , 3.4 değerini tutan bir floating-point literalidir diyebiliriz.
Biraz daha derine inecek olursak ;
int a = 0b12e2; // binary mode da e1 kullanılamaz.compiler hata verir.
int a = 012e2; // octalda da hata vardır. çünkü burada dönen değer bi double değeridir doğrusu ;
int a = (int) 011e1;
int a = 0x12e2; // hexadecimal sıkıntı yok.
floating pointlerde ise:
float f = 3.4e2f; // sıkıntı yok
float f = 033.4e2f; // octalda da sıkıntı yok
fakat hexadecimal literal olarak ;
float f = 0x12.4p2f; // not e or E , p yada P kullanılmalı.