Java Puzzle 06 – Multicast
Merhaba arkadaslar ,
Ornek kodumuzu inceleyelim ;
Multicast.java
package _06.multicast; public class Multicast { public static void main(String[] args) { System.out.println((int) (char) (byte) -1); } }
Ornegimizi calistirdigimizda ;
65535
Kodu inceledigimizde -1 (bir) literali int tipindedir. -1 ‘i byte tipine cast ediyoruz , sonra char sonra da int tipine cast ediyoruz.
int tipi 32 bit’tir , byte tipi 8 bittir. Bununla birlikte -1 degeri byte siniri icerisindedir dolayisiyla bu casting islemi problem teskil etmez.
char veri tipi 16 bit unsigned’tir , unsigned isaretsiz demektir bunun anlami char veritipi negatif deger alamaz.
char veri tipi icin alabilecegi degerler [0 , 2^16-1 yani 65535]
-1 degeri , char veri tipi sinifi disindadir ,
-1 -> 65535 -2 -> 65534 -3 -> 65533
seklinde cast edilir. Sonrasinda int tipine casting yapilir/widening burada char tipinden int tipine casting yapilir , bu durum herhangi bir problem teskil etmez.
Yazimi burada sonlandiriyorum.
Herkese bol Javali gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
OCP, Java SE 6 Programmer
OCE, Java EE 6 Web Component Developer
Leave a Reply