Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

a64l, l64a - Konvertierung einer Zeichenkette in 32-Bit-Integerzahl

&pagelevel(4)&pagelevel

Definition

#include <stdlib.h>

long a64l (const char *s);
char *l64a (long value); 

Beschreibung

Diese Funktionen werden zum Verwalten von Zahlen verwendet, die in ASCII-Zeichen zur Basis 64 gespeichert sind. Diese Zeichen definieren eine Notation, mit der lange ganze Zahlen durch maximal sechs Zeichen dargestellt werden können; jedes Zeichen stellt eine ’Ziffer’ in einer Schreibweise gemäß Basis 64 dar.

Die für die Darstellung von ’Ziffern’ verwendeten Zeichen sind . für 0, / für 1, 0 bis einschließlich 9 für 2-11, A bis einschließlich Z für 12-37 und a bis einschließlich z für 38-63.

a64l() erwartet einen Zeiger auf eine mit Null-Byte abgeschlossene Basis-64-Darstellung und gibt den entsprechenden long-Wert zurück. Wenn die Zeichenkette, auf die s zeigt, mehr als sechs Zeichen enthält, verwendet a64l() die ersten sechs Zeichen. War die übergebene Zeichenkette leer, ist der Returnwert 0L.

a64l() durchläuft die Zeichenkette von links nach rechts (mit der kleinsten signifikanten Ziffer links) und decodiert jedes Zeichen als 6-Bit Zahl zur Basis 64. Wenn der Typ long mehr als 32 Bit enthält, erhält das Resultat ein Vorzeichen. Das Verhalten von a64l() ist undefiniert, wenn s der Nullzeiger ist oder wenn die Zeichenkette, auf die s zeigt, nicht durch einen vorhergehenden Aufruf von l64a() erzeugt wurde.

l64a() erwartet ein long-Argument und gibt einen Zeiger auf die entsprechende Basis-64-Darstellung zurück. Wenn das Argument 0 ist, gibt l64a() einen Zeiger auf eine Nullzeichenkette zurück. Das Verhalten von l64a() ist undefiniert, wenn der Wert des Arguments negativ ist.

Returnwert

a64l():

Ganzzahliger Wert vom Typ long


für Zeichenketten, die eine wie oben beschriebene Struktur haben.

0L

für leere Zeichenketten.

undefiniert

falls s der Nullzeiger ist oder wenn die Zeichenkette nicht durch einen vorhergehenden Aufruf von l64a() erzeugt wurde. errno wird gesetzt, um den Fehler anzuzeigen.

l64a():

Zeiger auf eine Zeichenkette mit der Basis-64-Darstellung


für value > 0

Zeiger auf leere Zeichenkette


für value = 0

undefiniert

für value < 0                      

Fehler

a64l() schlägt fehl, wenn gilt:

ERANGE      Das Resultat ist nicht darstellbar.

Hinweise

Der von l64a() zurückgegebene Wert ist ein Zeiger in einen statischen Puffer, dessen Inhalt bei jedem Aufruf überschrieben wird.

Wenn der Typ long mehr als 32 Bit enthält, belegt das Ergebnis von a64l(l64a(l)) die 32 niederwertigen Bits.

Siehe auch strtoul(), stdlib.h