.NET Sayısal Değerleri

.NET, sayısal tamsayı ve kayan nokta temel öğelerinin yanı sıra şunlardan oluşan bir aralık sağlar:

Tam sayı türleri

.NET, aşağıdaki tablolarda listelenen hem imzalı hem de imzasız 8 bit, 16 bit, 32 bit, 64 bit ve 128 bit tamsayı türlerini destekler.

İmzalı tamsayı türleri

Tür Boyut (bayt cinsinden) Minimum değer Maksimum değer
System.Int16 2 -32,768 32.767
System.Int32 4 -2,147,483,648 2,147,483,647
System.Int64 8 -9,223,372,036,854,775,808 9,223,372,036,854,775,807
System.Int128 16 −170.141.183.460.469.231.731.687.303.715.884.105.728 170,141,183,460,469,231,731,687,303,715,884,105,727
System.SByte 1 -128 127
System.IntPtr (32 bit işlemde) 4 -2,147,483,648 2,147,483,647
System.IntPtr (64 bit işlemde) 8 -9,223,372,036,854,775,808 9,223,372,036,854,775,807

İmzasız tamsayı türleri

Tür Boyut (bayt cinsinden) Minimum değer Maksimum değer
System.Byte 1 0 255
System.UInt16 2 0 65,535
System.UInt32 4 0 4,294,967,295
System.UInt64 8 0 18,446,744,073,709,551,615
System.UInt128 16 0 340,282,366,920,938,463,463,374,607,431,768,211,455
System.UIntPtr (32 bit işlemde) 4 0 4,294,967,295
System.UIntPtr (64 bit işlemde) 8 0 18,446,744,073,709,551,615

Her tamsayı türü standart aritmetik işleç kümesini destekler. sınıfı, System.Math daha geniş bir matematik işlevleri kümesi için yöntemler sağlar.

Sınıfını kullanarak System.BitConverter tek tek bitlerle bir tamsayı değerinde de çalışabilirsiniz.

Not

İmzasız tamsayı türleri CLS uyumlu değildir. Daha fazla bilgi için bkz . Dil bağımsızlığı ve dilden bağımsız bileşenler.

BigInteger

Yapı System.Numerics.BigInteger , teorideki değerin üst veya alt sınırları olmayan rastgele büyük bir tamsayıyı temsil eden sabit bir türdür. Türün BigInteger yöntemleri, diğer integral türlerinin yöntemlerine yakından paraleldir.

Kayan nokta türleri

.NET aşağıdaki kayan nokta türlerini içerir:

Tür Boyut (bayt cinsinden) Yaklaşık aralık Ilkel? Notlar
System.Half 2 ±65504 Hayır .NET 5'te kullanıma sunulmuştur
System.Single 4 ±3.4 x 1038 Yes
System.Double 8 ±1.7 × 10308 Yes
System.Decimal 16 ±7.9228 x 1028 Hayır

Half, Singleve türleri, sayı olmayan ve Double sonsuzluğu temsil eden özel değerleri destekler. Örneğin, Double türü şu değerleri sağlar: Double.NaN, Double.NegativeInfinityve Double.PositiveInfinity. Bu özel değerleri test etmek için , Double.IsInfinity, Double.IsPositiveInfinityve Double.IsNegativeInfinity yöntemlerini kullanırsınızDouble.IsNaN.

Her kayan nokta türü bir dizi standart aritmetik işleci destekler. sınıfı, System.Math daha geniş bir matematik işlevleri kümesi için yöntemler sağlar. .NET Core 2.0 ve üzeri, türün System.MathF bağımsız değişkenlerini kabul eden yöntemler sağlayan sınıfını Single içerir.

Sınıfını kullanarak System.BitConverter , Singleve Half değerlerindeki Doubletek tek bitlerle de çalışabilirsiniz. Yapının System.Decimal , Decimal.GetBits ondalık değerin ayrı bitleriyle çalışmak için kendi yöntemleri ve Decimal(Int32[])bazı ek matematik işlemleri gerçekleştirmek için kendi yöntemleri vardır.

Double, Singleve Half türleri, doğası gereği kesin olmayan değerler (örneğin, iki yıldız arasındaki mesafe) ve yüksek düzeyde duyarlık ve küçük yuvarlama hatası gerektirmeyen uygulamalar için kullanılmak üzere tasarlanmıştır. Daha fazla duyarlık System.Decimal gerektiren ve yuvarlama hatalarının en aza indirilmesi gereken durumlar için türünü kullanın.

Not

Türü Decimal yuvarlama gereksinimini ortadan kaldırmaz. Bunun yerine yuvarlama nedeniyle hataları en aza indirir.

Complex

Yapı System.Numerics.Complex karmaşık bir sayıyı, yani gerçek sayı bölümü ve hayali sayı bölümü olan bir sayıyı temsil eder. Standart bir aritmetik, karşılaştırma, eşitlik, açık ve örtük dönüştürme işleçlerinin yanı sıra matematiksel, cebirsel ve trigonometrik yöntemleri destekler.

SIMD özellikli türler

Ad System.Numerics alanı bir .NET SIMD özellikli türler kümesi içerir. SIMD (Tek Yönerge Birden Çok Veri) işlemi donanım düzeyinde paralelleştirilebilir. Bu, matematiksel, bilimsel ve grafik uygulamalarında yaygın olarak kullanılan vektörleştirilmiş hesaplamaların aktarım hızını artırır.

.NET SIMD özellikli türler şunları içerir:

  • Vector22, 3 ve Vector4 4 Single değerleriyle vektörleri temsil eden , Vector3ve türleri.

  • 3x2 matrisi temsil eden ve Matrix4x44x4 matrisi temsil eden iki matris türüMatrix3x2.

  • Üç Plane boyutlu uzayda bir düzlemi temsil eden tür.

  • Türü Quaternion , üç boyutlu fiziksel döndürmeleri kodlamak için kullanılan bir vektör temsil eder.

  • Vector<T> Belirtilen sayısal türde bir vektöri temsil eden ve SIMD desteğinden yararlanan geniş bir işleç kümesi sağlayan tür. Bir Vector<T> örneğin sayısı sabittir, ancak değeri Vector<T>.Count kodun yürütüldiği makinenin CPU'sunun değerine bağlıdır.

    Not

    Türü Vector<T> .NET Core ve .NET 5+ ile birlikte sağlanır, ancak .NET Framework'e eklenmez. .NET Framework kullanıyorsanız, bu türe erişmek için System.Numerics.Vectors NuGet paketini yükleyin.

SIMD özellikli türler, SIMD etkin olmayan donanımlarla veya JIT derleyicileriyle kullanılabilecek şekilde uygulanır. SIMD yönergelerinden yararlanmak için, 64 bit uygulamalarınız .NET Core ve .NET Framework 4.6 ve sonraki sürümlerinde bulunan RyuJIT derleyicisini kullanan çalışma zamanı tarafından çalıştırılmalıdır. 64 bit işlemcileri hedeflerken SIMD desteği ekler.

Daha fazla bilgi için bkz . SIMD hızlandırılmış sayısal türleri kullanma.

Ayrıca bkz.