Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Int64ToNumber()

static unsafe void System.Number.Int64ToNumber ( long input,
ref NumberBuffer number )
inlinestaticprivate

Definition at line 2450 of file Number.cs.

2451 {
2452 ulong value = (ulong)input;
2453 number.IsNegative = input < 0;
2454 number.DigitsCount = 19;
2455 if (number.IsNegative)
2456 {
2457 value = (ulong)(-input);
2458 }
2459 byte* digitsPointer = number.GetDigitsPointer();
2460 byte* bufferEnd = digitsPointer + 19;
2461 while (High32(value) != 0)
2462 {
2463 bufferEnd = UInt32ToDecChars(bufferEnd, Int64DivMod1E9(ref value), 9);
2464 }
2465 bufferEnd = UInt32ToDecChars(bufferEnd, Low32(value), 0);
2466 int num = (number.Scale = (number.DigitsCount = (int)(digitsPointer + 19 - bufferEnd)));
2467 byte* digitsPointer2 = number.GetDigitsPointer();
2468 while (--num >= 0)
2469 {
2470 *(digitsPointer2++) = *(bufferEnd++);
2471 }
2472 *digitsPointer2 = 0;
2473 }
static uint High32(ulong value)
Definition Number.cs:3498
static uint Int64DivMod1E9(ref ulong value)
Definition Number.cs:3503
static uint Low32(ulong value)
Definition Number.cs:3493
static unsafe byte * UInt32ToDecChars(byte *bufferEnd, uint value, int digits)
Definition Number.cs:2360

References System.Number.High32(), System.input, System.Number.Int64DivMod1E9(), System.Number.Low32(), System.Number.UInt32ToDecChars(), and System.value.

Referenced by System.Number.FormatInt64(), and System.Number.TryFormatInt64().