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

◆ TryInt64ToHexStr()

static unsafe bool System.Number.TryInt64ToHexStr ( long value,
char hexBase,
int digits,
Span< char > destination,
out int charsWritten )
inlinestaticprivate

Definition at line 2561 of file Number.cs.

2562 {
2563 int num = Math.Max(digits, FormattingHelpers.CountHexDigits((ulong)value));
2564 if (num > destination.Length)
2565 {
2566 charsWritten = 0;
2567 return false;
2568 }
2569 charsWritten = num;
2570 fixed (char* ptr = &MemoryMarshal.GetReference(destination))
2571 {
2572 char* buffer = ptr + num;
2573 if (High32((ulong)value) != 0)
2574 {
2575 buffer = Int32ToHexChars(buffer, Low32((ulong)value), hexBase, 8);
2576 buffer = Int32ToHexChars(buffer, High32((ulong)value), hexBase, digits - 8);
2577 }
2578 else
2579 {
2580 buffer = Int32ToHexChars(buffer, Low32((ulong)value), hexBase, Math.Max(digits, 1));
2581 }
2582 }
2583 return true;
2584 }
static uint High32(ulong value)
Definition Number.cs:3498
static uint Low32(ulong value)
Definition Number.cs:3493
static unsafe char * Int32ToHexChars(char *buffer, uint value, int hexBase, int digits)
Definition Number.cs:2333

References System.buffer, System.Buffers.Text.FormattingHelpers.CountHexDigits(), System.destination, System.Number.High32(), System.Number.Int32ToHexChars(), System.Number.Low32(), System.Math.Max(), and System.value.

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