Dezimal in Hex/Oktal/Binärzahlen umwandeln

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Dezimal in Hex/Oktal/Binärzahlen umwandeln

    Hi, ich möchte mit PHP negative Dezimalzahlen in Hex-, Oktal- und Binärzahlen umrechnen.

    z.B. die Zahl -97. Es sollte als Ergebnis rauskommen:

    -97 =
    Binär: 10011111
    Oktal: 237
    Hex: 9f
    Wenn ich es mit PHP mache, bekomm ich merkwürdige Werte:
    PHP-Code:
        $intNum = -97;
        echo 
    'Binär: '.decbin($intNum).'<br />';
        echo 
    'Oktal: '.decoct($intNum).'<br />';
        echo 
    'Hex: '.dechex($intNum).'<br />'
    Binär: 11111111111111111111111110011111
    Oktal: 37777777637
    Hex: ffffff9f
    Was muss ich machen um die Ergebnis in das oben genannte Format zu bekommen?

    Danke

  • #2
    Hallo,

    da der negative Wert einzig davon abhängt, wie breit ein Register ist (wieviele Bits), musst du den Wert vorher auf die gewünschte Registerbreite (in deinem Fall offensichtlich 8) zuschneiden, indem du binär and-verknüpfst:

    PHP-Code:
    decbin(-97 0xff); 
    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Das _sind_ die richtigen Werte.

      Edit: AmicaNoctis hat eh schon alles gesagt.

      Kommentar


      • #4
        Zitat von h3ll Beitrag anzeigen
        Das _sind_ die richtigen Werte. Deine Werte sind falsch.
        Nein, seine Werte sind richtig, allerdings auf einem 8-bit-System! Die Werte, die du als richtig bezeichnest, wären auf einem 128-bit-System genauso „falsch“.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Supi. Danke!

          Kommentar


          • #6
            base_convert könnte auch helfen.

            Kommentar


            • #7
              Zitat von onemorenerd Beitrag anzeigen
              base_convert könnte auch helfen.
              Eher nicht, das rechnet auch mit der systemeigenen Registerbreite und ohne die Option, diese selbst zu verändern.
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                Mein base_convert kann das!
                Obwohl, Registerbreiten kennt es nicht.
                Aber es klebt Vorzeichen dran.
                Wir werden alle sterben

                Kommentar

                Lädt...
                X