BigInteger コンストラクター

定義

BigInteger 構造体の新しいインスタンスを初期化します。

オーバーロード

BigInteger(Byte[])

バイト配列の値を使用して、BigInteger 構造体の新しいインスタンスを初期化します。

BigInteger(Decimal)

Decimal 値を使用して、BigInteger 構造体の新しいインスタンスを初期化します。

BigInteger(Double)

倍精度浮動小数点値を使用して、BigInteger 構造体の新しいインスタンスを初期化します。

BigInteger(Int32)

32 ビット符号付き整数値を使用して、BigInteger 構造体の新しいインスタンスを初期化します。

BigInteger(Int64)

64 ビット符号付き整数値を使用して、BigInteger 構造体の新しいインスタンスを初期化します。

BigInteger(Single)

単精度浮動小数点値を使用して、BigInteger 構造体の新しいインスタンスを初期化します。

BigInteger(UInt32)

32 ビット符号なし整数値を使用して、BigInteger 構造体の新しいインスタンスを初期化します。

BigInteger(UInt64)

64 ビット符号なし整数値を使用して、BigInteger 構造体の新しいインスタンスを初期化します。

BigInteger(ReadOnlySpan<Byte>, Boolean, Boolean)

バイトの読み取り専用スパンを使用して、BigInteger 構造体の新しいインスタンスを初期化します。任意で、符号付きエンコードとエンディアンのバイト順を示します。

BigInteger(Byte[])

重要

この API は CLS 準拠ではありません。

バイト配列の値を使用して、BigInteger 構造体の新しいインスタンスを初期化します。

public:
 BigInteger(cli::array <System::Byte> ^ value);
[System.CLSCompliant(false)]
public BigInteger (byte[] value);
[<System.CLSCompliant(false)>]
new System.Numerics.BigInteger : byte[] -> System.Numerics.BigInteger
Public Sub New (value As Byte())

パラメーター

value
Byte[]

リトル エンディアン順に格納されたバイト値の配列。

属性

例外

valuenullです。

次の例で BigInteger は、値が {5, 4, 3, 2, 1} である5要素のバイト配列からオブジェクトをインスタンス化します。 次 BigInteger に、10進数と16進数の両方で表される値がコンソールに表示されます。 入力配列とテキスト出力の比較により、クラスコンストラクターのこのオーバーロード BigInteger BigInteger が、値が 4328719365 (または 0x102030405) のオブジェクトを作成する理由が明確になります。 バイト配列の最初の要素である値が5である場合、オブジェクトの最下位バイトの値 (0x05) が定義され BigInteger ます。 バイト配列の2番目の要素 (値が 4) は、オブジェクトの2番目のバイトの値 BigInteger (0x04 など) を定義します。

byte[] bytes = { 5, 4, 3, 2, 1 };
BigInteger number = new BigInteger(bytes);
Console.WriteLine("The value of number is {0} (or 0x{0:x}).", number);
// The example displays the following output:
//    The value of number is 4328719365 (or 0x102030405).
Dim bytes() As Byte = { 5, 4, 3, 2, 1 }
Dim number As New BigInteger(bytes)
Console.WriteLine("The value of number is {0} (or 0x{0:x}).", number) 
' The example displays the following output:
'    The value of number is 4328719365 (or 0x102030405).

次の例では、正の値と負の値をインスタンス化し、 BigInteger メソッドに渡してから、 ToByteArray 結果のバイト配列から元の値を復元し BigInteger ます。 2つの値は、同一のバイト配列で表されることに注意してください。 これらの違いは、バイト配列の最後の要素の最上位ビットのみです。 配列が負の値から作成される場合、このビットは (バイトの値は 0xFF) に設定され BigInteger ます。 配列が正の値から作成された場合、ビットは設定されません (バイトの値は0です) BigInteger

// Instantiate BigInteger values.
BigInteger positiveValue = BigInteger.Parse("4713143110832790377889");
BigInteger negativeValue = BigInteger.Add(-Int64.MaxValue, -60000);
BigInteger positiveValue2, negativeValue2;

// Create two byte arrays.
byte[] positiveBytes = positiveValue.ToByteArray();
byte[] negativeBytes = negativeValue.ToByteArray();

// Instantiate new BigInteger from negativeBytes array.
Console.Write("Converted {0:N0} to the byte array ", negativeValue);
foreach (byte byteValue in negativeBytes)
   Console.Write("{0:X2} ", byteValue);
Console.WriteLine();
negativeValue2 = new BigInteger(negativeBytes);
Console.WriteLine("Converted the byte array to {0:N0}", negativeValue2);
Console.WriteLine();

// Instantiate new BigInteger from positiveBytes array.
Console.Write("Converted {0:N0} to the byte array ", positiveValue);
foreach (byte byteValue in positiveBytes)
   Console.Write("{0:X2} ", byteValue);
Console.WriteLine();
positiveValue2 = new BigInteger(positiveBytes);
Console.WriteLine("Converted the byte array to {0:N0}", positiveValue2);
Console.WriteLine();
// The example displays the following output:
//    Converted -9,223,372,036,854,835,807 to the byte array A1 15 FF FF FF FF FF 7F FF
//    Converted the byte array to -9,223,372,036,854,835,807
//
//    Converted 4,713,143,110,832,790,377,889 to the byte array A1 15 FF FF FF FF FF 7F FF 00
//    Converted the byte array to 4,713,143,110,832,790,377,889
' Instantiate BigInteger values.
Dim positiveValue As BigInteger = BigInteger.Parse("4713143110832790377889")
Dim negativeValue As BigInteger = BigInteger.Add(-Int64.MaxValue, -60000) 
Dim positiveValue2, negativeValue2 As BigInteger

' Create two byte arrays.
Dim positiveBytes() As Byte = positiveValue.ToByteArray()
Dim negativeBytes() As Byte = negativeValue.ToByteArray()

' Instantiate new BigInteger from negativeBytes array.
Console.Write("Converted {0:N0} to the byte array ", negativeValue)
For Each byteValue As Byte In negativeBytes
   Console.Write("{0:X2} ", byteValue)
Next 
Console.WriteLine()
negativeValue2 = New BigInteger(negativeBytes)
Console.WriteLine("Converted the byte array to {0:N0}", negativeValue2)
Console.WriteLine()

' Instantiate new BigInteger from positiveBytes array.
Console.Write("Converted {0:N0} to the byte array ", positiveValue)
For Each byteValue As Byte In positiveBytes
   Console.Write("{0:X2} ", byteValue)
Next 
Console.WriteLine()
positiveValue2 = New BigInteger(positiveBytes)
Console.WriteLine("Converted the byte array to {0:N0}", positiveValue2)
Console.WriteLine()
' The example displays the following output:
'    Converted -9,223,372,036,854,835,807 to the byte array A1 15 FF FF FF FF FF 7F FF
'    Converted the byte array to -9,223,372,036,854,835,807
'    
'    Converted 4,713,143,110,832,790,377,889 to the byte array A1 15 FF FF FF FF FF 7F FF 00
'    Converted the byte array to 4,713,143,110,832,790,377,889

次の例は、値が0のバイトを配列の末尾に追加することによって、正の値が誤って負の値としてインスタンス化されないようにする方法を示しています。

ulong originalNumber = UInt64.MaxValue;
byte[] bytes = BitConverter.GetBytes(originalNumber);
if (originalNumber > 0 && (bytes[bytes.Length - 1] & 0x80) > 0)
{
   byte[] temp = new byte[bytes.Length];
   Array.Copy(bytes, temp, bytes.Length);
   bytes = new byte[temp.Length + 1];
   Array.Copy(temp, bytes, temp.Length);
}

BigInteger newNumber = new BigInteger(bytes);
Console.WriteLine("Converted the UInt64 value {0:N0} to {1:N0}.",
                  originalNumber, newNumber);
// The example displays the following output:
//    Converted the UInt64 value 18,446,744,073,709,551,615 to 18,446,744,073,709,551,615.
Dim originalNumber As ULong = UInt64.MaxValue
' Convert an unsigned integer to a byte array.
Dim bytes() As Byte = BitConverter.GetBytes(originalNumber)
' Determine whether the MSB of the highest-order byte is set.
If originalNumber > 0 And (bytes(bytes.Length - 1) And &h80) > 0 Then
   ' If the MSB is set, add one zero-value byte to the end of the array.
   ReDim Preserve bytes(bytes.Length)
End If

Dim newNumber As New BigInteger(bytes)
Console.WriteLine("Converted the UInt64 value {0:N0} to {1:N0}.", 
                  originalNumber, newNumber) 
' The example displays the following output:
'    Converted the UInt64 value 18,446,744,073,709,551,615 to 18,446,744,073,709,551,615.

注釈

配列内の個々のバイトは、下位バイトから最下位バイトまで、リトル エンディアン順 value である必要があります。 たとえば、数値 1,000,000,000,000,000 は次の表に示すように表されます。

16 進数文字列 E8D4A51000
バイト配列 (最初に最も低いインデックス) 00 10 A5 D4 E8 00

や など、数値をバイト配列に変換するほとんどのメソッドは、リトル エンディアン順でバイト BigInteger.ToByteArray BitConverter.GetBytes 配列を返します。

コンストラクターは、バイト配列の正の値が符号と大きさの表現を使用し、負の値が 2 の補数表現を使用すると予想されます。 つまり、 の最も高いバイトの最も高いビットが設定されている場合、結果の value BigInteger 値は負の値になります。 バイト配列のソースによっては、正の値が負の値として誤って解釈される可能性があります。 通常、バイト配列は次の方法で生成されます。

  • BigInteger.ToByteArray メソッドを呼び出す。 このメソッドは、配列内の最も高いバイトの最も高いビットが正の値の場合は 0 に設定されたバイト配列を返します。そのため、正の値を負と誤って解釈する可能性はありません。 メソッドによって作成された変更されていないバイト配列は、コンストラクターに渡されると、常に正常 ToByteArray にラウンドトリップ BigInteger(Byte[]) されます。

  • メソッドを呼び BitConverter.GetBytes 出し、パラメーターとして符号付き整数を渡します。 符号付き整数は符号と大きさの表現と 2 の補数表現の両方を処理します。そのため、正の値を負と誤って解釈する可能性はありません。

  • メソッドを呼 BitConverter.GetBytes び出し、パラメーターとして符号なし整数を渡します。 符号なし整数は大きさでのみ表されるため、正の値は負の値と誤って解釈される可能性があります。 この解釈の誤りを防ぐために、配列の末尾に 0 バイトの値を追加できます。 次のセクションの例では、図を示します。

  • バイト配列を動的または静的に作成し、必ずしも前のメソッドを呼び出さずに作成するか、既存のバイト配列を変更します。 正の値が負の値と誤って解釈されるのを防ぐために、配列の末尾に 0 バイトの値を追加できます。

value 空の配列 Byte の場合、新 BigInteger しい オブジェクトは の値に初期化されます BigInteger.Zero 。 が valuenull 場合、コンストラクターは をスローします ArgumentNullException

こちらもご覧ください

適用対象

BigInteger(Decimal)

Decimal 値を使用して、BigInteger 構造体の新しいインスタンスを初期化します。

public:
 BigInteger(System::Decimal value);
public BigInteger (decimal value);
new System.Numerics.BigInteger : decimal -> System.Numerics.BigInteger
Public Sub New (value As Decimal)

パラメーター

value
Decimal

10 進数。

次の例は、コンストラクターを使用して BigInteger(Decimal) オブジェクトをインスタンス化する方法を示してい BigInteger ます。 値の配列を定義し、 Decimal 各値をコンストラクターに渡し BigInteger(Decimal) ます。 値は、 Decimal オブジェクトに割り当てられている場合は、丸められるのではなく、切り捨てられることに注意して BigInteger ください。

decimal[] decimalValues = { -1790.533m, -15.1514m, 18903.79m, 9180098.003m };
foreach (decimal decimalValue in decimalValues)
{
   BigInteger number = new BigInteger(decimalValue);
   Console.WriteLine("Instantiated BigInteger value {0} from the Decimal value {1}.",
                     number, decimalValue);
}
// The example displays the following output:
//    Instantiated BigInteger value -1790 from the Decimal value -1790.533.
//    Instantiated BigInteger value -15 from the Decimal value -15.1514.
//    Instantiated BigInteger value 18903 from the Decimal value 18903.79.
//    Instantiated BigInteger value 9180098 from the Decimal value 9180098.003.
Dim decimalValues() As Decimal = { -1790.533d, -15.1514d, 18903.79d, 9180098.003d }
For Each decimalValue As Decimal In decimalValues
   Dim number As New BigInteger(decimalValue)
   Console.WriteLine("Instantiated BigInteger value {0} from the Decimal value {1}.",
                     number, decimalValue)
Next                 
' The example displays the following output:
'    Instantiated BigInteger value -1790 from the Decimal value -1790.533.
'    Instantiated BigInteger value -15 from the Decimal value -15.1514.
'    Instantiated BigInteger value 18903 from the Decimal value 18903.79.
'    Instantiated BigInteger value 9180098 from the Decimal value 9180098.003.

注釈

このコンストラクターを呼び出した結果は、変数に値を明示的に代入することと同じです Decimal BigInteger

このコンストラクターを呼び出すと、データが失われる可能性があります。の小数部分 value は、オブジェクトをインスタンス化するときに切り捨てられ BigInteger ます。

適用対象

BigInteger(Double)

倍精度浮動小数点値を使用して、BigInteger 構造体の新しいインスタンスを初期化します。

public:
 BigInteger(double value);
public BigInteger (double value);
new System.Numerics.BigInteger : double -> System.Numerics.BigInteger
Public Sub New (value As Double)

パラメーター

value
Double

倍精度浮動小数点数値。

例外

valueNaNNegativeInfinity、または PositiveInfinity です。

次の例は、コンストラクターを使用して BigInteger(Double) オブジェクトをインスタンス化する方法を示してい BigInteger ます。 また、データ型を使用する場合に発生する可能性のある有効桁数の損失についても説明し Double ます。 に Double は大きな値が割り当てられ、その値がオブジェクトに割り当てられ BigInteger ます。 出力に示されているように、この割り当てには精度の低下が伴います。 両方の値が1ずつインクリメントされます。 出力には、オブジェクトが変更された値を反映しているのに BigInteger 対し、オブジェクトには反映されていないことが示され Double ます。

// Create a BigInteger from a large double value.
double doubleValue = -6e20;
BigInteger bigIntValue = new BigInteger(doubleValue);
Console.WriteLine("Original Double value: {0:N0}", doubleValue);
Console.WriteLine("Original BigInteger value: {0:N0}", bigIntValue);
// Increment and then display both values.
doubleValue++;
bigIntValue += BigInteger.One;
Console.WriteLine("Incremented Double value: {0:N0}", doubleValue);
Console.WriteLine("Incremented BigInteger value: {0:N0}", bigIntValue);
// The example displays the following output:
//    Original Double value: -600,000,000,000,000,000,000
//    Original BigInteger value: -600,000,000,000,000,000,000
//    Incremented Double value: -600,000,000,000,000,000,000
//    Incremented BigInteger value: -599,999,999,999,999,999,999
' Create a BigInteger from a large double value.
Dim doubleValue As Double = -6e20
Dim bigIntValue As New BigInteger(doubleValue)
Console.WriteLine("Original Double value: {0:N0}", doubleValue)
Console.WriteLine("Original BigInteger value: {0:N0}", bigIntValue)
' Increment and then display both values.
doubleValue += 1
bigIntValue += BigInteger.One
Console.WriteLine("Incremented Double value: {0:N0}", doubleValue)
Console.WriteLine("Incremented BigInteger value: {0:N0}", bigIntValue)
' The example displays the following output:
'    Original Double value: -600,000,000,000,000,000,000
'    Original BigInteger value: -600,000,000,000,000,000,000
'    Incremented Double value: -600,000,000,000,000,000,000
'    Incremented BigInteger value: -599,999,999,999,999,999,999

注釈

パラメーターの小数部 value は、オブジェクトのインスタンス化時に切り捨てられ BigInteger ます。

データ型の有効桁数が不足しているため Double 、このコンストラクターを呼び出すと、データが失われる可能性があります。

このコンストラクターを呼び出した結果として得 BigInteger られる値は、に値を明示的に代入した結果の値と同じです Double BigInteger

適用対象

BigInteger(Int32)

32 ビット符号付き整数値を使用して、BigInteger 構造体の新しいインスタンスを初期化します。

public:
 BigInteger(int value);
public BigInteger (int value);
new System.Numerics.BigInteger : int -> System.Numerics.BigInteger
Public Sub New (value As Integer)

パラメーター

value
Int32

32 ビット符号付き整数。

次の例では、コンストラクターを呼び出して、 BigInteger(Int32) BigInteger 32 ビット整数の配列から値をインスタンス化します。 また、暗黙的な変換を使用して、各32ビット整数値を変数に代入し BigInteger ます。 次に、2つの値を比較して、結果の値が同じであることを確立し BigInteger ます。

int[] integers = { Int32.MinValue, -10534, -189, 0, 17, 113439,
                   Int32.MaxValue };
BigInteger constructed, assigned;

foreach (int number in integers)
{
   constructed = new BigInteger(number);
   assigned = number;
   Console.WriteLine("{0} = {1}: {2}", constructed, assigned,
                     constructed.Equals(assigned));
}
// The example displays the following output:
//       -2147483648 = -2147483648: True
//       -10534 = -10534: True
//       -189 = -189: True
//       0 = 0: True
//       17 = 17: True
//       113439 = 113439: True
//       2147483647 = 2147483647: True
Dim integers() As Integer = { Int32.MinValue, -10534, -189, 0, 17, 113439,
                              Int32.MaxValue }
Dim constructed, assigned As BigInteger

For Each number As Integer In integers
   constructed = New BigInteger(number)
   assigned = number
   Console.WriteLine("{0} = {1}: {2}", constructed, assigned, 
                     constructed.Equals(assigned)) 
Next
' The example displays the following output:
'       -2147483648 = -2147483648: True
'       -10534 = -10534: True
'       -189 = -189: True
'       0 = 0: True
'       17 = 17: True
'       113439 = 113439: True
'       2147483647 = 2147483647: True

注釈

BigIntegerこのコンストラクターを使用してオブジェクトをインスタンス化する場合、有効桁数は失われません。

このコンストラクターを呼び出した結果として得 BigInteger られる値は、に値を代入した結果の値と同じです Int32 BigInteger

BigInteger構造体に、型、型、型 ByteInt16 SByte または型のパラメーターを持つコンストラクターが含まれていません UInt16 。 ただし、型は、 Int32 8 ビットおよび16ビット符号付き整数と符号なし整数の符号付き32ビット整数への暗黙的な変換をサポートしています。 その結果、このコンストラクターは、 value がこれらの4つの整数型のいずれかである場合に呼び出されます。

適用対象

BigInteger(Int64)

64 ビット符号付き整数値を使用して、BigInteger 構造体の新しいインスタンスを初期化します。

public:
 BigInteger(long value);
public BigInteger (long value);
new System.Numerics.BigInteger : int64 -> System.Numerics.BigInteger
Public Sub New (value As Long)

パラメーター

value
Int64

64 ビット符号付き整数。

次の例では、コンストラクターを呼び出して、 BigInteger(Int64) BigInteger 64 ビット整数の配列から値をインスタンス化します。 また、暗黙的な変換を使用して、各64ビット整数値を変数に代入し BigInteger ます。 次に、2つの値を比較して、結果の値が同じであることを確立し BigInteger ます。

long[] longs = { Int64.MinValue, -10534, -189, 0, 17, 113439,
                 Int64.MaxValue };
BigInteger constructed, assigned;

foreach (long number in longs)
{
   constructed = new BigInteger(number);
   assigned = number;
   Console.WriteLine("{0} = {1}: {2}", constructed, assigned,
                     constructed.Equals(assigned));
}
// The example displays the following output:
//       -2147483648 = -2147483648: True
//       -10534 = -10534: True
//       -189 = -189: True
//       0 = 0: True
//       17 = 17: True
//       113439 = 113439: True
//       2147483647 = 2147483647: True
Dim longs() As Long = { Int64.MinValue, -10534, -189, 0, 17, 113439,
                              Int64.MaxValue }
Dim constructed, assigned As BigInteger

For Each number As Long In longs
   constructed = New BigInteger(number)
   assigned = number
   Console.WriteLine("{0} = {1}: {2}", constructed, assigned, 
                     constructed.Equals(assigned)) 
Next
' The example displays the following output:
'       -2147483648 = -2147483648: True
'       -10534 = -10534: True
'       -189 = -189: True
'       0 = 0: True
'       17 = 17: True
'       113439 = 113439: True
'       2147483647 = 2147483647: True

注釈

BigIntegerこのコンストラクターを使用してオブジェクトをインスタンス化する場合、有効桁数は失われません。

このコンストラクターを呼び出した結果として得 BigInteger られる値は、に値を代入した結果の値と同じです Int64 BigInteger

適用対象

BigInteger(Single)

単精度浮動小数点値を使用して、BigInteger 構造体の新しいインスタンスを初期化します。

public:
 BigInteger(float value);
public BigInteger (float value);
new System.Numerics.BigInteger : single -> System.Numerics.BigInteger
Public Sub New (value As Single)

パラメーター

value
Single

単精度浮動小数点数値。

例外

valueNaNNegativeInfinity、または PositiveInfinity です。

次の例は、コンストラクターを使用して BigInteger(Single) オブジェクトをインスタンス化する方法を示してい BigInteger ます。 また、データ型を使用する場合に発生する可能性のある有効桁数の損失についても説明し Single ます。 に Single は大きな負の値が割り当てられ、その値がオブジェクトに割り当てられ BigInteger ます。 出力に示されているように、この割り当てには精度の低下が伴います。 両方の値が1ずつインクリメントされます。 出力には、オブジェクトが変更された値を反映しているのに BigInteger 対し、オブジェクトには反映されていないことが示され Single ます。

// Create a BigInteger from a large negative Single value
float negativeSingle = Single.MinValue;
BigInteger negativeNumber = new BigInteger(negativeSingle);

Console.WriteLine(negativeSingle.ToString("N0"));
Console.WriteLine(negativeNumber.ToString("N0"));

negativeSingle++;
negativeNumber++;

Console.WriteLine(negativeSingle.ToString("N0"));
Console.WriteLine(negativeNumber.ToString("N0"));
// The example displays the following output:
//       -340,282,300,000,000,000,000,000,000,000,000,000,000
//       -340,282,346,638,528,859,811,704,183,484,516,925,440
//       -340,282,300,000,000,000,000,000,000,000,000,000,000
//       -340,282,346,638,528,859,811,704,183,484,516,925,439
' Create a BigInteger from a large negative Single value
Dim negativeSingle As Single = Single.MinValue
Dim negativeNumber As New BigInteger(negativeSingle)

Console.WriteLine(negativeSingle.ToString("N0"))
Console.WriteLine(negativeNumber.ToString("N0"))

negativeSingle += 1
negativeNumber += 1
Console.WriteLine(negativeSingle.ToString("N0"))
Console.WriteLine(negativeNumber.ToString("N0"))
' The example displays the following output:
'       -340,282,300,000,000,000,000,000,000,000,000,000,000
'       -340,282,346,638,528,859,811,704,183,484,516,925,440
'       -340,282,300,000,000,000,000,000,000,000,000,000,000
'       -340,282,346,638,528,859,811,704,183,484,516,925,439

注釈

パラメーターの小数部 value は、オブジェクトのインスタンス化時に切り捨てられ BigInteger ます。

データ型の有効桁数が不足しているため Single 、このコンストラクターを呼び出すと、データが失われる可能性があります。

このコンストラクターを呼び出した結果として得 BigInteger られる値は、に値を明示的に代入した結果の値と同じです Single BigInteger

適用対象

BigInteger(UInt32)

重要

この API は CLS 準拠ではありません。

CLS 準拠の代替
System.Numerics.BigInteger.BigInteger(Int64)

32 ビット符号なし整数値を使用して、BigInteger 構造体の新しいインスタンスを初期化します。

public:
 BigInteger(System::UInt32 value);
[System.CLSCompliant(false)]
public BigInteger (uint value);
[<System.CLSCompliant(false)>]
new System.Numerics.BigInteger : uint32 -> System.Numerics.BigInteger
Public Sub New (value As UInteger)

パラメーター

value
UInt32

32 ビットの符号なし整数値。

属性

次の例では、 BigInteger(UInt32) コンストラクターと代入ステートメントを使用して、 BigInteger 符号なし32ビット整数の配列から値を初期化します。 次に、2つの値を比較して、値を初期化する2つのメソッドが同じ結果を生成することを示し BigInteger ます。

uint[] unsignedValues = { 0, 16704, 199365, UInt32.MaxValue };
foreach (uint unsignedValue in unsignedValues)
{
   BigInteger constructedNumber = new BigInteger(unsignedValue);
   BigInteger assignedNumber = unsignedValue;
   if (constructedNumber.Equals(assignedNumber))
      Console.WriteLine("Both methods create a BigInteger whose value is {0:N0}.",
                        constructedNumber);
   else
      Console.WriteLine("{0:N0} ≠ {1:N0}", constructedNumber, assignedNumber);
}
// The example displays the following output:
//    Both methods create a BigInteger whose value is 0.
//    Both methods create a BigInteger whose value is 16,704.
//    Both methods create a BigInteger whose value is 199,365.
//    Both methods create a BigInteger whose value is 4,294,967,295.
Dim unsignedValues() As UInteger = { 0, 16704, 199365, UInt32.MaxValue }
For Each unsignedValue As UInteger In unsignedValues
   Dim constructedNumber As New BigInteger(unsignedValue)
   Dim assignedNumber As BigInteger = unsignedValue
   If constructedNumber.Equals(assignedNumber) Then
      Console.WriteLine("Both methods create a BigInteger whose value is {0:N0}.",
                        constructedNumber)
   Else
      Console.WriteLine("{0:N0} ≠ {1:N0}", constructedNumber, assignedNumber)
   End If                         
Next
' The example displays the following output:
'    Both methods create a BigInteger whose value is 0.
'    Both methods create a BigInteger whose value is 16,704.
'    Both methods create a BigInteger whose value is 199,365.
'    Both methods create a BigInteger whose value is 4,294,967,295.

注釈

BigIntegerこのコンストラクターを使用してをインスタンス化する場合、有効桁数は失われません。

このコンストラクターを呼び出した結果として得 BigInteger られる値は、に値を代入した結果の値と同じです UInt32 BigInteger

適用対象

BigInteger(UInt64)

重要

この API は CLS 準拠ではありません。

CLS 準拠の代替
System.Numerics.BigInteger.BigInteger(Double)

64 ビット符号なし整数値を使用して、BigInteger 構造体の新しいインスタンスを初期化します。

public:
 BigInteger(System::UInt64 value);
[System.CLSCompliant(false)]
public BigInteger (ulong value);
[<System.CLSCompliant(false)>]
new System.Numerics.BigInteger : uint64 -> System.Numerics.BigInteger
Public Sub New (value As ULong)

パラメーター

value
UInt64

符号なし 64 ビット整数。

属性

次の例では、コンストラクターを使用して、 BigInteger(UInt64) BigInteger 値がと等しいオブジェクトをインスタンス化し MaxValue ます。

ulong unsignedValue = UInt64.MaxValue;
BigInteger number = new BigInteger(unsignedValue);
Console.WriteLine(number.ToString("N0"));
// The example displays the following output:
//       18,446,744,073,709,551,615
Dim unsignedValue As ULong = UInt64.MaxValue
Dim number As New BigInteger(unsignedValue)
Console.WriteLine(number.ToString("N0"))       
' The example displays the following output:
'       18,446,744,073,709,551,615

注釈

BigIntegerこのコンストラクターを使用してをインスタンス化する場合、有効桁数は失われません。

このコンストラクターを呼び出した結果として得 BigInteger られる値は、に値を代入した結果の値と同じです UInt64 BigInteger

適用対象

BigInteger(ReadOnlySpan<Byte>, Boolean, Boolean)

バイトの読み取り専用スパンを使用して、BigInteger 構造体の新しいインスタンスを初期化します。任意で、符号付きエンコードとエンディアンのバイト順を示します。

public BigInteger (ReadOnlySpan<byte> value, bool isUnsigned = false, bool isBigEndian = false);
new System.Numerics.BigInteger : ReadOnlySpan<byte> * bool * bool -> System.Numerics.BigInteger
Public Sub New (value As ReadOnlySpan(Of Byte), Optional isUnsigned As Boolean = false, Optional isBigEndian As Boolean = false)

パラメーター

value
ReadOnlySpan<Byte>

多倍長整数を表すバイトの読み取り専用のスパン。

isUnsigned
Boolean

value で符号なしのエンコードを使用することを示す場合は true。それ以外の場合は false (既定値)。

isBigEndian
Boolean

value がビッグ エンディアンのバイト順であることを示す場合は true。それ以外の場合は false (既定値)。

適用対象