Motivation

Immer wieder nach Lösungen zu suchen ist ineffektiv. Deshalb wider des Vergessens: Die Klasse URS::Util implementiert immer wieder benötigte Routinen. Eine laufende Ergänzung ist vorgesehen.

In­halts­ver­zeich­nis

Versionshistorie

Download

Verwendung

Methoden

Formatierung von Ganzzahlen

Mit Tausender-Trennzeichen

Konvertierung in Hexadezimalzahl


Version Anpassungen
1.0 (2019-12-16) Initiale Version
1.1 (2019-12-18) Fehlerkorrekturen

Download

Das ZIP-Archiv für Bibliothek UrsUtil zum Download. Die entpackten Dateien ins Verzeichnis <user>\Documents\Arduino\libraries kopieren (siehe Installing Additional Arduino Libraries).

Das Archiv enthält die Bibliotheksdateien

Verwendung

Um nicht in Konflikt mit anderen Bibliotheken zu kommen, wird der Namespace URS verwendet. Will man sich die regelmäßige Angabe des Namespace sparen (URS::Util.xxx) kann man die Anweisung using namespace URS; dem Programmcode voranstellen:

#include <UrsUtil.h>
using namespace URS;
...
  Serial.println(Util.thousandSeparatorString(1234567));

Methoden

Formatierung von Ganzzahlen

Mit Tausender-Trennzeichen

Zur Verbesserung der Lesbarkeit bei der Ausgabe großer Zahlen ist es sinnvoll Tausender-Trennzeichen einzufügen. Die Methode thousandSeparatorString() konvertiert eine Ganzzahl in einen String mit eingefügten Tausender-Trennzeichen. Serial.println(Util.thousandSeparatorString(1234567)); ergibt den Output "1.234.567". Damit auch negative Zahlen formatiert werden können gibt es auch eine Variante der Methode für vorzeichenbehaftete Zahlen.

Über die Methode setThousandSeparator() kann das Trennzeichen festgelegt werden. '\0' ist als Trennzeichen nicht zulässig.

Methode Funktion Anmerkung
String thousandSeparatorString(uint32_t n) Konvertiert eine vorzeichenlose Ganzzahl in einen String mit Tausender-Trennzeichen. Util.thousandSeparatorString(1234567) -> "1.234.567"
String thousandSeparatorString(int32_t n) Konvertiert eine vorzeichenbehaftete Ganzzahl in einen String mit Tausender-Trennzeichen. Util.thousandSeparatorString(-1234567) -> "-1.234.567"
void setThousandSeparator(char sep) Lagt das Trennzeichen fest. '\0' ist als Trennzeichen nicht zulässig.

Konvertierung in Hexadezimalzahl

Serial.print() erlaubt zwar die Ausgabe von Hexadezimalzahlen. Die Anzahl auszugebender Stellen kann man jedoch nicht festlegen. Beim Debuggen ist es jedoch sehr nützlich Ausgaben mit immer der gleichen Anzahl an Stellen zu haben. Die Methoden toHexnDigits() konvertiert Ganzzahlen in Hexadezimal-Strings mit gleicher Stellenzahl. Für n sind sie Angaben 2, 4 und 8 möglich.

Methode Funktion Anmerkung
String toHex2Digits(uint8_t n) Konvertiert eine Zahl in einen Hexadezimal-String mit 2 Hexadezimalstellen. Bei Zahlen mit mehr als 8 Bit wird nur das letzte Byte ausgegeben.
String toHex4Digits(uint16_t n) Konvertiert eine Zahl in einen Hexadezimal-String mit 4 Hexadezimalstellen. Bei Zahlen mit mehr als 16 Bit werden nur die letzten beiden Byte ausgegeben.
String toHex8Digits(uint32_t n, char separator = '\0') Konvertiert eine Zahl in einen Hexadezimal-String mit 4 Hexadezimalstellen. Wenn separator != '\0' wird das Zeichen zwischen der 4. und 5. Stelle eingefügt. Util.toHex8Digits(0xFFFFFFFF,'.') -> "FFFF.FFFF"