folder Tahribat.com Forumları
linefolder Java
linefolder Javadaki Long Tipi



Javadaki Long Tipi

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Mastika.
    Absolut
    Absolut's avatar
    Kayıt Tarihi: 04/Ağustos/2011
    Erkek

     

    double türünden float türüne tür dönüştürme operatörü ile dönüştürme yapıldığında bilgi kaybı olabilir. Bu durumda IEEE 754 formatının yuvarlama kuralları uygulanarak float türünde gösterilebilecek en yakın sayı elde edilir. Örneğin:

    double a; float b;
    a = 100.456789;
    b = (float)a;
    System.out.printf("a=%f\n", a); // a = 100,456789
    System.out.printf("b=%f\n", b); // b = 100,456787


     
    Gerçek sayı türünden tamsayı türüne tür dönüştürme operatörü ile yapılan dönüştürme işlemi iki aşamada gerçekleşir: Birinci aşamada hedef tür long türü dışında bir tamsayı türünde ise (byte, short, char veya int) önce int türüne dönüştürülür. Hedef tür long ise long türüne dönüştürülür. Bu dönüştürme sırasında sayının noktadan sonraki kısmı atılır. Bu durumda elde edilen değer dönüştürülecek türün (long veye int) sınırları içerisinde kalıyorsa bir sorun oluşmaz. Eğer elde edilen değer dönüştürülecek türün (long veya int) sınırları içerisinde kalmıyorsa ve sayı negatifse dönüştürülecek türün (long veya int) tutabildiği en küçük değer alınır, sayı pozitifse dönüştürülecek türün (long veya int) tutabildiği en büyük değer alınır. Hedef tür byte, short ya da char türlerinden biriyse elde edilen değer birinci aşamada elde değerin yüksek anlamlı byte değerleri atılmış biçimidir

    Ornek : 

    public static void main(String[] args) {
    double a; int b;
    a = 100.45678; b = (int) a;
    System.out.printf("b=%d\n", b);
    }

    Ornek 2  : byte cevirme :

    public static void main(String[] args) {
    		
    		//12A05F200
    		double a = 5000000000.456; 
    		byte b = (byte)a;
    		System.out.printf("a=%f%n", a); 
    		System.out.printf("b=0x%X%n", b); 
    		System.out.printf("b=0x%d%n", b);
    		
    	}



    Burada dönüştürme byte türüne yapıldığından sayının noktadan sonraki kısmı atıldığında değer int türüne dönüştürülür. Sayının noktadan sonraki kısmı atıldığında elde edilen değer int türü sınırları dışındadır. Çok büyük bir değer olarak (pozitif olarak) sınırlar dışında kaldığından bu sayı int türü içerisinde tutulan en büyük sayıya (2147483647) dönüştürülür. Daha sonra sayının yüksek anlamlı 3(üç) byte’ı atılarak 1(bir) byte lık sayı elde edilir. Dikkat edilirse bu sayı -1 sayısıdır. 

     

     

     

     

    Absolut tarafından 04/Oca/16 10:46 tarihinde düzenlenmiştir

    Nice babayigitler kirayi kim odeyecek, coluk cocuk ne yiyecek derdinden dolayi dunyayi degistiremiyor.
Toplam Hit: 3378 Toplam Mesaj: 12
java