代码改变世界

BigInteger和Complex:NET 4新增数据类型

2014-09-15 11:29  Eric.Hu  阅读(621)  评论(0编辑  收藏  举报

BigInteger和Complex是.NET 4中新增的两种值类型,他们位于System.Numeric命名空间下,需要单独添加引用。

BigInteger

BigInteger类型是不可变类型,代表了一个任意大的整数,其值理论上已经没有上限和下限。此类型不同于.NET Framework其他整型,后者已经通过MinValue和MaxValue属性指示了一个范围。因为它没有上限和下限,对于导致BigInteger值增长过大的任何操作都会引发内存溢出异常—OutOfMemoryException。

static void Main(string[] args)

{

System.Numerics.BigInteger googol= System.Numerics.BigInteger.Pow(10,100);

Console.WriteLine(googol);

Console.ReadKey();

}

 

结果:

 

Complex

Complex表示一个复数,我们知道,复数有实数部分和虚数部分组成,在实例化和操作复数时,Complex类型使用笛卡尔坐标系统(实数,虚数)。一个复数可以表示为一个二维坐标系中的某个点,复数的实数 部分位于x轴,虚数部分位于y轴。

static void Main(string[] args)

{

var z1 = new System.Numerics.Complex(1, 2);

var z2 = new System.Numerics.Complex(3, 3);

 

var r1 = System.Numerics.Complex.Add(z1, z2);

var r2 = System.Numerics.Complex.Subtract(z1, z2);

var r3 = System.Numerics.Complex.Multiply(z1, z2);

var r4 = System.Numerics.Complex.Divide(z1, z2);

 

Console.WriteLine("z1+z2:" + r1);

Console.WriteLine("z1-z2:" + r2);

Console.WriteLine("z1xz2:" + r3);

Console.WriteLine("z1/z2:" + r4);

 

Console.ReadKey();

}

 

结果: