Definition at line 190 of file BigInteger.cs.
191 {
192 if (!
double.IsFinite(
value))
193 {
194 if (
double.IsInfinity(
value))
195 {
197 }
199 }
202 NumericsHelpers.GetDoubleParts(
value, out var sign, out var exp, out var man, out var _);
204 {
206 return;
207 }
208 if (exp <= 0)
209 {
210 if (exp <= -64)
211 {
213 return;
214 }
215 this = man >> -exp;
216 if (sign < 0)
217 {
219 }
220 return;
221 }
222 if (exp <= 11)
223 {
224 this = man << exp;
225 if (sign < 0)
226 {
228 }
229 return;
230 }
231 man <<= 11;
232 exp -= 11;
233 int num = (exp - 1) / 32 + 1;
234 int num2 = num * 32 - exp;
235 _bits =
new uint[num + 2];
236 _bits[num + 1] = (uint)(man >> num2 + 32);
237 _bits[num] = (uint)(man >> num2);
238 if (num2 > 0)
239 {
240 _bits[num - 1] = (uint)((
int)man << 32 - num2);
241 }
243 }
static string Overflow_NotANumber
static string Overflow_BigIntInfinity
References System.Numerics.BigInteger._bits, System.Numerics.BigInteger._sign, System.Numerics.NumericsHelpers.GetDoubleParts(), System.L, System.SR.Overflow_BigIntInfinity, System.SR.Overflow_NotANumber, System.value, and System.Numerics.BigInteger.Zero.