====== std.conv ====== Typ- und Zahlensystemkonvertierungen sowie Bitmanipulation auf ''int64''. Konvertiert zwischen Dezimal, Hexadezimal, Binär und Oktal, bietet Bit-Extraktion/-Setzung/-Umkehr, Endian-Umwandlung (16/32/64 Bit), Rotation (''RotateLeft32'', ''RotateRight32''), Vorzeichenerweiterung (''SignExtend8/16/32''), Alignment-Hilfsfunktionen und formatierte Ganzzahlausgabe mit Tausendertrennzeichen. Einsatzbereiche: Protokoll-Implementierungen, Kryptografie-Algorithmen, Hardware-nahe Programmierung, Debugging von Binärformaten. **Autor:** Andreas Röne\\ **Copyright:** 2024-2025 Andreas Röne ---- ===== Imports ===== * ''[[lyx_-_programmiersprache:units:math|std.math]]'' * ''[[lyx_-_programmiersprache:units:string|std.string]]'' ---- ===== Funktionen ===== ^ Signatur ^ Sichtbarkeit ^ Beschreibung ^ | ''CharToHexDigit(c: int64): int64'' | priv | Wandelt ASCII-Zeichen in Hex-Ziffernwert | | ''HexDigitToChar(d: int64): int64'' | priv | Wandelt Hex-Ziffernwert in ASCII-Zeichen | | ''CharToBinDigit(c: int64): int64'' | priv | Wandelt ASCII-Zeichen in Binärziffernwert | | ''BinDigitToChar(d: int64): int64'' | priv | Wandelt Binärziffernwert in ASCII-Zeichen | | ''IntToHex(val: int64, digits: int64): pchar'' | pub | Formatiert Ganzzahl als Hex-String | | ''IntToHex8(val: int64): pchar'' | pub | Formatiert Ganzzahl als 8-Bit-Hex-String | | ''IntToHex16(val: int64): pchar'' | pub | Formatiert Ganzzahl als 16-Bit-Hex-String | | ''IntToHex32(val: int64): pchar'' | pub | Formatiert Ganzzahl als 32-Bit-Hex-String | | ''IntToHex64(val: int64): pchar'' | pub | Formatiert Ganzzahl als 64-Bit-Hex-String | | ''IntToBin(val: int64, bits: int64): pchar'' | pub | Formatiert Ganzzahl als Binär-String | | ''IntToBin8(val: int64): pchar'' | pub | Formatiert Ganzzahl als 8-Bit-Binär-String | | ''IntToBin16(val: int64): pchar'' | pub | Formatiert Ganzzahl als 16-Bit-Binär-String | | ''IntToBin32(val: int64): pchar'' | pub | Formatiert Ganzzahl als 32-Bit-Binär-String | | ''IntToBin64(val: int64): pchar'' | pub | Formatiert Ganzzahl als 64-Bit-Binär-String | | ''IntToOct(val: int64, digits: int64): pchar'' | pub | Formatiert Ganzzahl als Oktal-String | | ''ParseHex(s: pchar): int64'' | pub | Parst Hex-String zu Ganzzahl | | ''ParseBin(s: pchar): int64'' | pub | Parst Binär-String zu Ganzzahl | | ''ParseOct(s: pchar): int64'' | pub | Parst Oktal-String zu Ganzzahl | | ''GetBit(val: int64, bit_pos: int64): bool'' | pub | Liest einzelnes Bit an Position | | ''SetBit(val: int64, bit_pos: int64): int64'' | pub | Setzt Bit an angegebener Position | | ''ClearBit(val: int64, bit_pos: int64): int64'' | pub | Löscht Bit an angegebener Position | | ''ToggleBit(val: int64, bit_pos: int64): int64'' | pub | Invertiert Bit an angegebener Position | | ''ExtractBits(val: int64, start: int64, count: int64): int64'' | pub | Extrahiert Bitfeld aus Ganzzahlwert | | ''InsertBits(val: int64, bits: int64, start: int64, count: int64): int64'' | pub | Fügt Bitfeld in Ganzzahlwert ein | | ''CountLeadingZeros(val: int64): int64'' | pub | Zählt führende Nullbits im Wert | | ''CountTrailingZeros(val: int64): int64'' | pub | Zählt nachfolgende Nullbits im Wert | | ''SwapEndian16(val: int64): int64'' | pub | Tauscht Byte-Reihenfolge bei 16 Bit | | ''SwapEndian32(val: int64): int64'' | pub | Tauscht Byte-Reihenfolge bei 32 Bit | | ''SwapEndian64(val: int64): int64'' | pub | Tauscht Byte-Reihenfolge bei 64 Bit | | ''GetByte(val: int64, byte_pos: int64): int64'' | pub | Liest Byte an angegebener Position | | ''SetByte(val: int64, byte_pos: int64, byte_val: int64): int64'' | pub | Schreibt Byte an angegebener Position | | ''RotateLeft32(val: int64, n: int64): int64'' | pub | Rotiert 32-Bit-Wert um n Bits links | | ''RotateRight32(val: int64, n: int64): int64'' | pub | Rotiert 32-Bit-Wert um n Bits rechts | | ''SignExtend8(val: int64): int64'' | pub | Vorzeichenerweitert 8-Bit-Wert auf 64 Bit | | ''SignExtend16(val: int64): int64'' | pub | Vorzeichenerweitert 16-Bit-Wert auf 64 Bit | | ''SignExtend32(val: int64): int64'' | pub | Vorzeichenerweitert 32-Bit-Wert auf 64 Bit | | ''ZeroExtend8(val: int64): int64'' | pub | Nullerweitert 8-Bit-Wert auf 64 Bit | | ''ZeroExtend16(val: int64): int64'' | pub | Nullerweitert 16-Bit-Wert auf 64 Bit | | ''ZeroExtend32(val: int64): int64'' | pub | Nullerweitert 32-Bit-Wert auf 64 Bit | | ''ClampUint8(val: int64): int64'' | pub | Begrenzt Wert auf 8-Bit-Bereich 0–255 | | ''ClampUint16(val: int64): int64'' | pub | Begrenzt Wert auf 16-Bit-Bereich | | ''ClampUint32(val: int64): int64'' | pub | Begrenzt Wert auf 32-Bit-Bereich | | ''AlignDown(addr: int64, alignment: int64): int64'' | pub | Rundet Adresse auf Alignment-Grenze ab | | ''AlignUp(addr: int64, alignment: int64): int64'' | pub | Rundet Adresse auf Alignment-Grenze auf | | ''IsAligned(addr: int64, alignment: int64): bool'' | pub | Prüft ob Adresse ausgerichtet ist | | ''IntToStrWithSeparator(n: int64, sep: int64): pchar'' | pub | Formatiert Zahl mit benutzerdefiniertem Trennzeichen | | ''IntToStrWithUnderscore(n: int64): pchar'' | pub | Formatiert Zahl mit Unterstrich-Trennzeichen | | ''IntToStrWithComma(n: int64): pchar'' | pub | Formatiert Zahl mit Komma-Tausendertrennzeichen |