BigInteger.Abs(BigInteger) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
BigInteger 개체의 절대 값을 가져옵니다.
public:
static System::Numerics::BigInteger Abs(System::Numerics::BigInteger value);
public:
static System::Numerics::BigInteger Abs(System::Numerics::BigInteger value) = System::Numerics::INumberBase<System::Numerics::BigInteger>::Abs;
public static System.Numerics.BigInteger Abs (System.Numerics.BigInteger value);
static member Abs : System.Numerics.BigInteger -> System.Numerics.BigInteger
Public Shared Function Abs (value As BigInteger) As BigInteger
매개 변수
- value
- BigInteger
숫자입니다.
반환
value의 절대값입니다.
구현
예제
다음 예제에서는 메서드를 사용하여 Abs 값을 파일로 BigInteger serialize하기 전에 두 개의 보수 표현에서 부호 및 크기 표현으로 변환합니다. 그런 다음 파일의 데이터가 역직렬화되고 새 BigInteger 개체에 할당됩니다.
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.
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.
설명
숫자의 절대값은 다음 표와 같이 부호가 없는 숫자입니다.
value 매개 변수 |
반환 값 |
|---|---|
value >= 0 |
value |
value < 0 |
value * -1 |
이 Abs 메서드는 기본 숫자 형식의 메서드와 동일합니다 Math.Abs .