Değişken Üretmek
-
merhabalar;
gece gece aklıma takılan bir soru var hocalar ama bu saatte tam olarak google a ne istediğimi anlatamadım belki sizlere anlatabilirim.
hepinizin bildiği üzere değişken türleri var int,long gibi mesela ulong değişkeni 18,446,744,073,709,551,615 gibi bir tam sayıyı tutabiliyor aklında.
şimdi sormak istediğim soru(lar) şu
bu değişkenin kapasitesini arttırabilirmiyim ? arttırabilirsem ne kadara kadar nasıl arttırabilirim ?
eğer arttıramıyorsam yada arttırdığım halde yeterli gelmiyor ise kendim bir değişken sınıfı oluştabilirmiyim ?
örnek olarak furkan adında bir değişken sınıfı ve ulong değişkeninin tuttuğu sayının 10 katı büyüklüğünde tam sayı değişkeni oluşturabilirmiyim ? nasıl yapabilirim ?
birde var sayalım ki oluşturdum bu yeni furkan değişkeni standart değişkenlerden daha fazla sayı tuttuğu için bu değişkenler arası matematik işlemlerinde sıkıntı çıkarmı ?
çıkarsa bu benim işlemcimin gücünden mi kaynaklanır ?
eğer işlemci gücünden kaynaklı ise şöyleki bende i7 işlemci var ve ben bu yeni değişken türünü oluşturup projede işlem yapıyorum sıkıntı yok ama i3 bir makine aynı işlemi yaparken sorun yaşarmıyım ? yaşarsam elimdeki işlemcinin matematik kapasitesini nasıl ölçerim?
-
Up olsun
-
Hoca yanlış anlamadıysam bunun için mimariyi tamamen değiştirmek gerekmez mi ?
-
bu değişkenin kapasitesini arttırabilirmiyim ? arttırabilirsem ne kadara kadar nasıl arttırabilirim ?
Olmaz.
eğer arttıramıyorsam yada arttırdığım halde yeterli gelmiyor ise kendim bir değişken sınıfı oluştabilirmiyim ?
Evet oluşturabilirsin.
örnek olarak furkan adında bir değişken sınıfı ve ulong değişkeninin tuttuğu sayının 10 katı büyüklüğünde tam sayı değişkeni oluşturabilirmiyim ? nasıl yapabilirim ?
Evet mümkün. Ama amaç üzüm yemekse gerek olmayabilir.
birde var sayalım ki oluşturdum bu yeni furkan değişkeni standart değişkenlerden daha fazla sayı tuttuğu için bu değişkenler arası matematik işlemlerinde sıkıntı çıkarmı ?
Her türlü ihtimali değerlendirmek yeni bir veri türünün yaratıcısı olarak senin sorumluluğunda. Evet sıkıntı çıkabilir, çılgınca test etmelisin.
çıkarsa bu benim işlemcimin gücünden mi kaynaklanır ?
Büyük ihtimalle hayır, bir sürü başka pis işler dönebilir.
.Net 4.0'dan beri böyle bir ihtiyaca cevap olarak System.Numerics uzayında BigInteger adlı bir koçyiğit var. Bu sayının sınırı sistem kaynakları kadar, büyük sayılarla cenk edebilirsin.Nasıl yapabilirim demiştin. Vallahi pis iş.
İki 128-bit integer kütüphane örneği. Ben ikisini de (veya bir başka 3. parti kütüphane) kullanmadım ama incelemek için uygun olur.
https://github.com/ricksladkey/dirichlet-numerics
Veya bahsettiğim BigInteger'in kaynak kodlarına da bakabilirsin.
https://referencesource.microsoft.com/#System.Numerics/System/Numerics/BigInteger.cs
-
Bakınız nesne