Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

BigInteger.Abs Method

Gets the absolute value of a BigInteger object.

Namespace:  System.Numerics
Assemblies:   System.Runtime.Numerics (in System.Runtime.Numerics.dll)
  System.Numerics (in System.Numerics.dll)

'Declaration
Public Shared Function Abs ( _
	value As BigInteger _
) As BigInteger

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.

Imports System.IO
Imports System.Numerics
Imports System.Runtime.Serialization.Formatters.Binary

<Serializable> Public Structure SignAndMagnitude
   Dim Sign As Integer 
   Dim Bytes() As Byte 
End Structure 

Module Example
   Public Sub Main()
      Dim fs As FileStream
      Dim formatter As New BinaryFormatter()

      Dim number As BigInteger = BigInteger.Pow(Int32.MaxValue, 20) * BigInteger.MinusOne
      Console.WriteLine("The original value is {0}.", number)
      Dim sm As 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)
      Dim smRestored As SignAndMagnitude = DirectCast(formatter.Deserialize(fs), SignAndMagnitude)
      fs.Close()
      Dim restoredNumber As New BigInteger(smRestored.Bytes) 
      restoredNumber *= sm.Sign 
      Console.WriteLine("The deserialized value is {0}.", restoredNumber)      
   End Sub 
End Module 
' The example displays the following output: 
'    The original value is -4.3510823966323432743748744058E+186. 
'    The deserialized value is -4.3510823966323432743748744058E+186.

.NET Framework

Supported in: 4.6, 4.5, 4

.NET Framework Client Profile

Supported in: 4

Portable Class Library

Supported in: Portable Class Library

Supported in: Windows Phone 8.1
Show:
© 2015 Microsoft