Aracılığıyla paylaş


.NET'te sayısallar

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

Tamsayı 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) En düşük değer En büyük 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-bitlik 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) En düşük değer En büyük değer
System.Byte 1 0 İki yüz elli beş
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-bitlik 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.

System.BitConverter sınıfını kullanarak bir tamsayı değerinin tek tek bitleriyle de çalışabilirsiniz.

Uyarı

İ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 İlkel? Notlar
System.Half 2 ±65504 Hayı .NET 5'te kullanıma sunulmuştur
System.Single 4 ±3.4 x 1038 Evet
System.Double 8 ±1.7 × 10308 Evet
System.Decimal 16 ±7.9228 x 1028 Hayı

Half, Single ve Double türleri, sayı olmayan (NaN) ve sonsuzluk gibi ö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.IsNaN, Double.IsInfinityve Double.IsPositiveInfinity yöntemlerini kullanırsınızDouble.IsNegativeInfinity.

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 sonraki sürümler, System.MathF türünde bağımsız değişkenleri kabul eden yöntemler sağlayan Single sınıfını içerir.

Sınıfını kullanarak Double , Singleve Half değerlerindeki System.BitConvertertek tek bitlerle de çalışabilirsiniz. Yapı, ondalık bir değerin ayrı bitleriyle çalışmak için System.Decimal ve Decimal.GetBits adlı kendi yöntemlerine sahiptir ve ayrıca bazı ek matematiksel işlemleri gerçekleştirmek için Decimal(Int32[]) adlı başka yöntemler sunar.

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 yüksek hassasiyetin System.Decimal gerektiği ve yuvarlama hatalarının en aza indirilmesi gereken durumlar için bu türü kullanın.

Uyarı

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

Karmaşık

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

System.Numerics ad alanı bir dizi .NET SIMD destekli tür 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:

  • Vector2, Vector3 ve Vector4 türleri, 2, 3 ve 4 Single değerine sahip vektörleri temsil eder.

  • 3x2 matrisi temsil eden ve Matrix3x24x4 matrisi temsil eden iki matris türüMatrix4x4.

  • Üç boyutlu uzayda bir düzlemi temsil eden Plane 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.

    Uyarı

    Vector<T> türü .NET Core ve .NET 5+'un bir parçası olarak sağlanır, ancak .NET Framework'e dahil edilmemiştir. .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 bakınız