long to string



  • hallo
    ich möchte die anzahl der erforderlichen zeichen ermitteln, damit eine
    zahl vom typ long sicher in ein array typs char hineinpasst

    meine überlegung

    pseudo code:

    laenge = string_laenge ( nummer_zu_text ( LONG_MAX ) )
    

    oder

    zaehler = 0
    zahl = LONG_MAX
    
    solange zahl:
    zahl = zahl / 10
    zaehler = zaehler + 1
    - ende solange zahl -
    zaehler = zaehler + 1
    

    problem:
    ich möchte ein statisches array und kein C99 benutzen d.h. keine variable length arrays.

    ein char long_buffer[sizeof(long)*CHAR_BIT] ist mir zu groß weil die zahlen nicht binär gespeichert werden.

    gibts da eine schöne möglichkeit?



  • So Pi mal Daumen kannst du die AnzahlBits durch 3 teilen. Evtl musst du aufrunden und Platz fürs Vorzeichen lassen.



  • da muss man erstmal drauf kommen
    👍



  • 210 ≈ 103 kilo -> 4 Dezimalstellen
    220 ≈ 106 Mega -> 7 Dezimalstellen
    230 ≈ 109 Giga -> 10 Dezimalstellen


  • Mod

    Nicht vergessen, dass noch ein Minuszeichen kommen könnte!



  • DirkB schrieb:

    210 ≈ 103 kilo -> 4 Dezimalstellen
    220 ≈ 106 Mega -> 7 Dezimalstellen
    230 ≈ 109 Giga -> 10 Dezimalstellen

    achso, ja da ist ne gewisse verbindung zum teiler 3

    SeppJ schrieb:

    Nicht vergessen, dass noch ein Minuszeichen kommen könnte!

    ja, hat dirkb ja schon erwähnt 😉
    ist sowieso alles ulong ;);) aber ein bytes gibts trotzdem extra, zur vorsicht ;););)


Anmelden zum Antworten