.NET Core - ตัวเลข

.NET Core รองรับอนุพันธ์เลขมาตรฐานและเลขทศนิยม นอกจากนี้ยังรองรับประเภทต่อไปนี้ -

  • System.Numerics.BigInteger ซึ่งเป็นประเภทอินทิกรัลที่ไม่มีขอบเขตบนหรือล่าง

  • System.Numerics.Complex เป็นประเภทที่แสดงถึงจำนวนเชิงซ้อน

  • ชุดประเภทเวกเตอร์ที่เปิดใช้งาน Single Instruction Multiple Data (SIMD) ใน System.Numerics namespace

ประเภทปริพันธ์

.NET Core สนับสนุนทั้งจำนวนเต็มที่ลงนามและไม่ได้ลงนามในช่วงที่แตกต่างกันตั้งแต่ความยาวหนึ่งไบต์ถึงแปดไบต์ จำนวนเต็มทั้งหมดเป็นประเภทค่า

ตารางต่อไปนี้แสดงถึงประเภทอินทิกรัลและขนาด

ประเภท ลงชื่อ / ไม่ได้ลงนาม ขนาด (ไบต์) มูลค่าขั้นต่ำ ค่าสูงสุด
ไบต์ ไม่ได้ลงนาม 1 0 255
Int16 ลงชื่อ 2 −32,768 32,767
Int32 ลงชื่อ 4 −2,147,483,648 2,147,483,647
Int64 ลงชื่อ 8 −9,223,372,036,854,775,808 9,223,372,036,854,775,807
SByte ลงชื่อ 1 -128 127
UInt16 ไม่ได้ลงนาม 2 0 65,535
UInt32 ไม่ได้ลงนาม 4 0 4,294,967,295
UInt64 ไม่ได้ลงนาม 8 0 18,446,744,073,709,551,615

อินทิกรัลแต่ละประเภทสนับสนุนชุดมาตรฐานของเลขคณิตการเปรียบเทียบความเท่าเทียมการแปลงอย่างชัดเจนและตัวดำเนินการแปลงโดยนัย

คุณยังสามารถทำงานกับแต่ละบิตในค่าจำนวนเต็มโดยใช้คลาส System.BitConverter

ประเภทจุดลอยตัว

.NET Core ประกอบด้วยจุดลอยตัวแบบดั้งเดิมสามประเภทซึ่งแสดงในตารางต่อไปนี้

ประเภท ขนาด (ไบต์) มูลค่าขั้นต่ำ ค่าสูงสุด
สองเท่า 8 −1.79769313486232e308 1.79769313486232e308
โสด 4 −3.402823e38 3.402823e38
ทศนิยม 16 −79,228,162,514,264,337,593,5 43,950,335 79,228,162,514,264,337,593,543,9 50,335
  • ทศนิยมแต่ละประเภทสนับสนุนชุดมาตรฐานของเลขคณิตการเปรียบเทียบความเท่าเทียมการแปลงอย่างชัดเจนและตัวดำเนินการแปลงโดยนัย

  • คุณยังสามารถทำงานกับแต่ละบิตในค่า Double และ Single ได้โดยใช้คลาส BitConverter

  • โครงสร้างทศนิยมมีวิธีการของตัวเองทศนิยม GetBits และ Decimal.Decimal (Int32 ()) สำหรับการทำงานกับแต่ละบิตของค่าทศนิยมรวมถึงชุดวิธีการของตัวเองสำหรับการดำเนินการทางคณิตศาสตร์เพิ่มเติม

BigInteger

  • System.Numerics.BigInteger เป็นประเภทที่ไม่เปลี่ยนรูปซึ่งแสดงถึงจำนวนเต็มขนาดใหญ่โดยพลการซึ่งค่าในทางทฤษฎีไม่มีขอบเขตบนหรือล่าง

  • วิธีการของประเภท BigInteger นั้นขนานกันอย่างใกล้ชิดกับประเภทอินทิกรัลอื่น ๆ

ซับซ้อน

  • ประเภท System.Numerics.Complex แทนจำนวนเชิงซ้อนกล่าวคือจำนวนที่มีส่วนจำนวนจริงและส่วนจำนวนจินตภาพ

  • สนับสนุนชุดมาตรฐานของเลขคณิตการเปรียบเทียบความเท่าเทียมการแปลงอย่างชัดเจนและตัวดำเนินการแปลงโดยนัยตลอดจนวิธีการทางคณิตศาสตร์พีชคณิตและตรีโกณมิติ

SIMD

  • เนมสเปซ Numerics ประกอบด้วยชุดเวกเตอร์ที่เปิดใช้งาน SIMD สำหรับ. NET Core

  • SIMD ช่วยให้การดำเนินการบางอย่างสามารถขนานกันได้ในระดับฮาร์ดแวร์ซึ่งส่งผลให้มีการปรับปรุงประสิทธิภาพอย่างมากในแอปทางคณิตศาสตร์วิทยาศาสตร์และกราฟิกที่ทำการคำนวณบนเวกเตอร์

  • ประเภทเวกเตอร์ที่เปิดใช้งาน SIMD ใน. NET Core มีดังต่อไปนี้ -

    • System.Numerics.Vector2, System.Numerics.Vector3 และ System.Numerics.Vector4 ประเภทซึ่งเป็นเวกเตอร์ 2, 3 และ 4 มิติประเภท Single

    • โครงสร้าง Vector <T> ที่ช่วยให้คุณสร้างเวกเตอร์ของประเภทตัวเลขดั้งเดิมใด ๆ ประเภทตัวเลขดั้งเดิมรวมถึงประเภทตัวเลขทั้งหมดในเนมสเปซของระบบยกเว้นทศนิยม

    • เมทริกซ์สองประเภท System.Numerics.Matrix3 × 2 ซึ่งแสดงถึงเมทริกซ์ 3 × 2 และ System.Numerics.Matrix4 × 4 ซึ่งแสดงถึงเมทริกซ์ 4 × 4

    • ชนิด System.Numerics.Plane ซึ่งแสดงถึงระนาบสามมิติและชนิด System.Numerics.Quaternion ซึ่งแสดงถึงเวกเตอร์ที่ใช้ในการเข้ารหัสการหมุนทางกายภาพสามมิติ