BigInteger.Abs Method (BigInteger)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on 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


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 < 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);

      // Deserialize SignAndMagnitude value.
      fs = new FileStream(@".\data.bin", FileMode.Open);
      SignAndMagnitude smRestored = (SignAndMagnitude) formatter.Deserialize(fs);
      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
Available since 4.0
Windows Phone
Available since 8.1
Return to top