Facebook
From medrestüzzehra, 4 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 130
  1. fun main() {
  2.  
  3.     //Tip Dönüşümü – Casting
  4.  
  5.  
  6. /*
  7. * ben ne zamanki byte veri tipi oluşturuyorum
  8. * ve bellekte 8 bitlik alan yaratılıyor
  9. * eğer ben short veri tipi oluşturursam  16 bit
  10. * integer oluşturursam 32 bit bir alan oluşturucak
  11. * kutulara benzetirsek
  12. * byte--> bir yüzük kutusu
  13. * short-->bir ayakkabı kutusu
  14. * integer --> buz dolabı kutusu olsun
  15. * şimdi ben mantıken bir yüzük kutusunu bir ayakkabı
  16. * kutusunda tutabilirim
  17. * ve ayakkabı kutusunuda buzdolabı kutusuna sığdırabilirim
  18. * aynı şekilde dolaylı olarak yüzük kutusunu
  19. * buzdolabı kutusuna sığdırabilirim
  20. * ancak tam tersi bir durumda
  21. * bir buzdolabı kutusunu ayakkabı kutusuna
  22. * ya da bir yüzük kutusuna sığdıramam
  23. * işte bizde veri için konuşursak
  24. * veri kaybına uğrayabilir
  25. * ve tip dönüşümünün burdaki anlatılanlardan hiç farkı yok
  26. * yani siz 8bitlik ifadeyi 32 bitlik ifadede saklayabiliriz
  27. * 16 bitlik ifadeyi 8bit e koymaya çalışırken veri kaybı yaşarız
  28. *
  29. * her zaman değil.derken
  30. * ne zamanki 16 bitin hepsini kullandık 8bite aktarmaya çalışırsak
  31. * veri kaybı yaşayacaz
  32. *
  33. * atıyorum byte olarak 10 sayısıda bir byte değerdir ve byte sınırları
  34. * içerisindedir -128 ile 127 arasında bir değer sonuçta
  35. * shortta bir 3000 değerini byte ın içine koymaya çalışırsak sığmayacaktır
  36. *
  37. *
  38. *
  39. * */
  40.  
  41.     var shortSayi : Short = 32767 //üst sınırı
  42.  
  43.     var integerSayi : Int
  44.  
  45.     /*
  46.     //shortSayinin değerini al
  47.     //integerSayiya koy
  48.     her ne kadar veri kaybı olmasada bir
  49.     yerde elmalar var bir yerde armutlar var gibi
  50.     düşünebilirsiniz
  51.     bunların ikisininde veri türünün aynı
  52.     olması lazım ki compiler böyle hata vermesin
  53.  
  54.     integerSayi = shortSayi
  55.      */
  56.  
  57.     integerSayi = shortSayi.toInt()
  58.     /*
  59.     * bu napar ? burdaki short veri tipindeki
  60.     * sayıyı integera çevirir ve integerSayi ya
  61.     * atar
  62.     *
  63.     * */
  64.  
  65.     println(integerSayi)
  66.  
  67.  
  68.     /*
  69.    * naptık aslında short veri tipini integer
  70.    * veri tipine çevirdik..
  71.    * */
  72.  
  73.     //gelelim şimdi tam tersini yapalım
  74.  
  75.     //Küçük kutuya büyük kutu koymaya çalışalım
  76.  
  77.     var integerSayi2 : Int = 45000
  78.  
  79.     var shortSayi2 : Short
  80.  
  81.     shortSayi2 =integerSayi2.toShort()
  82.  
  83.     /*
  84.     * burda naptık?
  85.     * aslında short a sığmayacak bir veriyi
  86.     * shorta sığdırdık
  87.     * */
  88.  
  89.  
  90.     println(shortSayi2)
  91.  
  92.     /*
  93.     * -20536 çıktı niye böyle geldi?
  94.     * verimiz böyle bozuldu işte
  95.     * */
  96.  
  97.     //veri kaybını en iyi anlatma yolu double olacaktır
  98.  
  99.     var noktaliSayi : Double =50.556677
  100.  
  101.     var noktaliSayitoInt : Int
  102.  
  103.     noktaliSayitoInt = noktaliSayi.toInt()
  104.  
  105.     println(noktaliSayitoInt)
  106.  
  107.     /*
  108.     * Çıktıda neden 50 sayısını gördük?
  109.     * integer yapısı gereği napıyordu?
  110.     * sadece tam sayı tutuyordu değilmi?
  111.     * noktalı ifadelerle ilgilenmiyordu
  112.     * double ın bu noktalı değerlerini
  113.     * barındıramayacağı için aldı iptal etti
  114.     * böylece sayının tam sayı kısmını aldı
  115.     *
  116.     *
  117.     * */
  118.  
  119.  
  120.     /*
  121.     * biz bir noktalı sayı belirtip
  122.     * veri tipini belirtmessek otomatik
  123.     * double tanımlanacaktır
  124.     *
  125.     * mesela
  126.     * var buyukSayi = diye tanımlayacağımız değişkenin
  127.     * biz long olmasını istiyoruz double olmasını istemiyok
  128.     * sonuçta long da tamsayıları tutan bir veri türü..
  129.     *
  130.     * yazarken sayının sonuna L koyarsan iş çözülüyor
  131.     * long tipinde tanımlaniyür
  132.     *
  133.     *  */
  134.  
  135.     /*
  136.     * peki biz float tanımlamak istersek?
  137.     * o zamanda noktalı sayımızın sonuna F
  138.     * harfini koyacağız
  139.     *
  140.     * */
  141.  
  142.     var buyukOndalikliSayi = 5555.555F
  143.  
  144.     //floatı double a dönüştürelim
  145.     //küçük kutuyu büyük kutuya koy yani
  146.     var d1: Double = buyukOndalikliSayi.toDouble()
  147.  
  148.     println(buyukOndalikliSayi)
  149.  
  150.     // 5555.555 bozulmadı
  151.  
  152.     var sayi1 = 855
  153.  
  154.  
  155.     println(sayi1.toString()+1) //8551 yazacak
  156.  
  157.  
  158.     println(sayi1+1)
  159.  
  160.     var sayi3 : Int = 1000
  161.     var sayi4 : Long
  162.  
  163.     sayi4 =sayi3.toLong()
  164.     println(sayi4)
  165.  
  166.     toShort toInt toLong
  167. }
  168.