BigInteger.Abs Method (BigInteger)

 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Gets the absolute value of a BigInteger object.

Namespace:   System.Numerics
Assembly:  System.Numerics (in System.Numerics.dll)

public static BigInteger Abs(
	BigInteger value
)

Parameters

value
Type: System.Numerics.BigInteger

A number.

Return Value

Type: System.Numerics.BigInteger

The absolute value of value.

The absolute value of a number is that number without its sign, as shown in the following table.

value parameter

Return value

value >= 0

value

value < 0

value * -1

The Abs method is equivalent to the Math.Abs method for the primitive numeric types.

The following example uses the Abs method to convert a BigInteger value from two's complement representation to sign-and-magnitude representation before serializing it to a file. Data in the file is then deserialized and assigned to a new BigInteger object.

using System;
using System.IO;
using System.Numerics;
using System.Runtime.Serialization.Formatters.Binary;

[Serializable] public struct SignAndMagnitude
{
   public int Sign; 
   public byte[] Bytes;
}

public class Example
{
   public static void Main()
   {
      FileStream fs;
      BinaryFormatter formatter = new BinaryFormatter();

      BigInteger number = BigInteger.Pow(Int32.MaxValue, 20) * BigInteger.MinusOne;
      Console.WriteLine("The original value is {0}.", number);
      SignAndMagnitude sm = new SignAndMagnitude();
      sm.Sign = number.Sign;
      sm.Bytes = BigInteger.Abs(number).ToByteArray();

      // Serialize SignAndMagnitude value.
      fs = new FileStream(@".\data.bin", FileMode.Create);
      formatter.Serialize(fs, sm);
      fs.Close();

      // Deserialize SignAndMagnitude value.
      fs = new FileStream(@".\data.bin", FileMode.Open);
      SignAndMagnitude smRestored = (SignAndMagnitude) formatter.Deserialize(fs);
      fs.Close();
      BigInteger restoredNumber = new BigInteger(smRestored.Bytes); 
      restoredNumber *= sm.Sign; 
      Console.WriteLine("The deserialized value is {0}.", restoredNumber);      
   }
}
// The example displays the following output:
//    The original value is -4.3510823966323432743748744058E+186.
//    The deserialized value is -4.3510823966323432743748744058E+186.

Universal Windows Platform
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 4.0
Windows Phone
Available since 8.1
Return to top
Show: