bugzone2.0
Hectopat
Daha fazla
- Cinsiyet
- Erkek
- Meslek
- Jr. Java Back-end Developer
Soruyu bir örnek üzerinden anlatmaya çalışayım.
Kodu çalıştığında geriye hata döndürüyor. Hata: "Cannot implicitly convert type 'int' to 'short'. An explicit conversion exists (are you missing a cast?)"
Hatada int türü örtülü olarak short türüne dönüştürülemez diyor. Stack overflow üzerinde biraz konuyu araştırdım ve bazı açıklamalarda short ve short toplandığında ortaya int türü bir değer çıktığı yazıyor. Short veri tipi bildiğimiz üzere System. Int16 sınıfından türeyen 16Bit bir değer. Anladığım kadarıyla da bu iki aynı türde değer toplandığında ortaya 32 Bit bir sonuç çıkıyor. Sonuç 100 yani 16Bit sınırları içerisinde hala neden 32 Bit türe dönüyor?
Aynı mantıkta iki int sayı toplandığında 32 Bit ve 32 Bit değerler toplamı 64 Bit olmuyor da neden sadece short türünde bu sorun ortaya çıkıyor anlam veremedim.
Bir açıklamada + operatörü C# dilinde kullanıldığında işlemi otomatik olarak 32 Bit yapıyor deniyor, bu konu hakkında bilgi sahibi olan var mı?
C#:
short deger1 = 50;
short deger2 = 50;
short toplam = deger1+deger2;
Kodu çalıştığında geriye hata döndürüyor. Hata: "Cannot implicitly convert type 'int' to 'short'. An explicit conversion exists (are you missing a cast?)"
Hatada int türü örtülü olarak short türüne dönüştürülemez diyor. Stack overflow üzerinde biraz konuyu araştırdım ve bazı açıklamalarda short ve short toplandığında ortaya int türü bir değer çıktığı yazıyor. Short veri tipi bildiğimiz üzere System. Int16 sınıfından türeyen 16Bit bir değer. Anladığım kadarıyla da bu iki aynı türde değer toplandığında ortaya 32 Bit bir sonuç çıkıyor. Sonuç 100 yani 16Bit sınırları içerisinde hala neden 32 Bit türe dönüyor?
Aynı mantıkta iki int sayı toplandığında 32 Bit ve 32 Bit değerler toplamı 64 Bit olmuyor da neden sadece short türünde bu sorun ortaya çıkıyor anlam veremedim.
Bir açıklamada + operatörü C# dilinde kullanıldığında işlemi otomatik olarak 32 Bit yapıyor deniyor, bu konu hakkında bilgi sahibi olan var mı?