Narfo: Funktionserläuterung

Grüezi,

ich bin nicht grad ein Mathegenie und vielleicht mag mir jemand folgende Funktion erläutern, die ich aus der PHP-Dokumentation kopiert habe. Ich sehe zwar, was dabei rauskommt, aber mit Logarithmen und den anderen verwendeten mathematischen Funktionen kann ich wenig anfangen. Auch die Wikipedia-Erläuterung übersteigt ein bisschen meine Fähigkeiten.

----------------------------------------------------------

  
function byteConvert($bytes)  
    {  
        $s = array('B', 'Kb', 'MB', 'GB', 'TB', 'PB');  
        $e = floor(log($bytes)/log(1024));  
  
        return sprintf('%.2f '.$s[$e], ($bytes/pow(1024, floor($e))));  
    }  

----------------------------------------------------------
Quelle: http://de2.php.net/manual/de/function.filesize.php
olafurw at gmail.com
15-Aug-2008 09:47
----------------------------------------------------------

Vielen Dank für die Hilfe

  1. Grüße,

    $s = array('B', 'Kb', 'MB', 'GB', 'TB', 'PB');

    array - keys für 1 bis 6

    $e = floor(log($bytes)/log(1024));

    errechnet logarythmus von $bytes zu basis 1024 (etwas umständlich geschrieben) also potenz von 1024 nahc unten gerundet

    return sprintf('%.2f '.$s[$e], ($bytes/pow(1024, floor($e))));

    der sinn von $s[$e] ist - potenz von 1024 entsprich dem key mit der bezeichnung -
    also für $bytes<1024^1 B(ytes)
    für $bytes<1024^2 Kb etc.

    zur errinerung - 1024 bytes sind 1 kbyte
    1024kbyte sind 1Mb etc.

    MFG
    bleicher

    --
    __________________________-
    Die versprechen ernsthaft werbefreien hosting?
    1. (Hallo|Hi(ho)|Tag|Mahlzeit) bleicher,

      zur errinerung - 1024 bytes sind 1 kbyte
      1024kbyte sind 1Mb etc.

      Es gibt einen Unterschied zwischen k(ilo)Bytes und K(ibi)Bytes und ebenso bei den anderen Einheiten-Vorsätzen. Der mag zwar krümelkackerisch erscheinen, kann sich aber summieren und wird gerne in der Werbung ausgenutzt, um Speichermengen größer erscheinen zu lassen, als sie es wirklich sind.

      MffG
      EisFuX

      1. Grüße,
        es gibt nur die wahren Kilobytes, und die bestehen aus zwei hoch zehn = 1024 bytes. die tausenderversion ist ein sich verselbstständigte marketinglüge. das sollte man ebenso wie IE-spezifische seiten nicht unterstützen.

        MFG
        bleicher

        --
        __________________________-
        Die versprechen ernsthaft werbefreien hosting?
        1. Mahlzeit bleicher,

          es gibt nur die wahren Kilobytes, und die bestehen aus zwei hoch zehn = 1024 bytes.

          Der Begriff "Kilo" steht aber schon länger für "1000x" als es Informatik, Speicherplatzangaben usw. gibt. Dass die weltfremden Informatiker irgendwann meinten, sie könnten diese Vorsätze einfach benutzen, sie aber mit einer anderen Bedeutung versehen, ist das Problem ...

          </polemik>

          die tausenderversion ist ein sich verselbstständigte marketinglüge. das sollte man ebenso wie IE-spezifische seiten nicht unterstützen.

          Bei Letzterem stimme ich Dir zu. Bei Ersterem ist es aber in der Tat und wirklich so, dass eigentlich überall und erheblich länger als Begriffe aus der Informatik in der Allgemeinheit bekannt sind diese Vorsätze bereits eine Bedeutung hatten. Natürlich ist es verwirrend, wenn in bestimmten Bereichen eine bestimmte Mengenangabe eine andere Bedeutung hat als in allen anderen Bereichen ... den Schuh müssen sich aber wirklich die Informatiker und nicht die Marketingleute anziehen.

          MfG,
          EKKi

          --
          sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
          1. Grüße,
            na und? mathematiker nennen ihre sachen auch mit exestierenden begriffen, und allerwelt akzeptiert es.
            wieso dürfen informatiker es nicht?
            MFG
            bleicher

            --
            __________________________-
            Die versprechen ernsthaft werbefreien hosting?
            1. na und? mathematiker nennen ihre sachen auch mit exestierenden begriffen, und allerwelt akzeptiert es.

              Und wo kommen "Normalsterbliche" mit diesen Begriffen in Berührung?

              wieso dürfen informatiker es nicht?

              Weil es einfach für massive Verwirrung sorgt. Es gilt 1000X=1kX, ganz egal, was X ist. Warum sollte es also für Byte und nur für Byte eine Ausnahme geben?

              --
              Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.
              Self-Code: sh:( ch:? rl:( br:> n4:( ie:{ mo:) va:) de:> zu:} fl:| ss:| ls:~ js:|
          2. Hallo :)

            Dass die weltfremden Informatiker irgendwann meinten, sie könnten diese Vorsätze einfach benutzen, sie aber mit einer anderen Bedeutung versehen, ist das Problem ...

            Interessant ist dieses Verfahren für Energieversorger.
            Geliefert: 800 kWh
            Abgelesen: 800 KWh
            Abgerechnet: 819200 Wh

            Merkt doch keiner ...

            mfg
            cygnus

            --
            Die Sache mit der Angel und dem  ><o(((°>  hat immer einen Haken ...
        2. Hallo,

          es gibt nur die wahren Kilobytes, und die bestehen aus zwei hoch zehn = 1024 bytes. die tausenderversion ist ein sich verselbstständigte marketinglüge. das sollte man ebenso wie IE-spezifische seiten nicht unterstützen.

          102.4% ACK!

          Seit meinen ersten Begegnungen mit der Welt der Datenverarbeitung in den 80er Jahren war ein kB *immer* 1024 Byte, und das werde ich auch so beibehalten. Zumindest die Programmierer und die, die sehr eng mit der Technik zu tun haben, habe ich damit auf meiner Seite.

          So long,
           Martin

          --
          Es gibt Dinge, die sind sooo falsch, dass nicht einmal das Gegenteil stimmt.
          1. 102.4% ACK!
            Seit meinen ersten Begegnungen mit der Welt der Datenverarbeitung in den 80er Jahren war ein kB *immer* 1024 Byte, und das werde ich auch so beibehalten. Zumindest die Programmierer und die, die sehr eng mit der Technik zu tun haben, habe ich damit auf meiner Seite.

            Wer wird auch jemals SchubiDubiBytes brauchen?
            mfg Gates, William

            --
            Woran ich arbeite:
            X-Torah
            ><o(((°>     ><o(((°>
               <°)))o><                      ><o(((°>o
          2. (Hallo|Hi(ho)|Tag) Der Martin,

            102.4% ACK!

            Der war gut! :-)
            Obwohl, müssten in deinem binär-verdingsten Rechensystem 100 dezimale SI-Prozent nicht eher 2^8 == 128 entsprechen? ... oder 2^9 == 512 für die Potenzzahl mit dem  nächstkleineren Exponenten?

            Seit meinen ersten Begegnungen mit der Welt der Datenverarbeitung in den 80er Jahren war ein kB *immer* 1024 Byte, ...

            Hmmm, also bei meinen ersten Begegnungen mit der Welt der Datenverarbeitung in den 80-er Jahren bin ich recht schnell auf den feinen Unterschied zwischen kByte ("kilo-Byte", für 1000 Bisse) und KByte ("Kaa-Byte" für 1024 Bisse) gestoßen. Für die damalige Zeit reichte diese Unterscheidung zwischen kleinem "k" und großem "K" ja auch meistens aus. Bis dann irgendwann irgendwer den Megabit-Speicherchip erfand und der hatte dann schon ein kapitales "M" (1 MBit). Das ging wohl nicht mehr größer zu machen. So gesehen, sind "Kibi", "Mebi" und Kollegen doch eine praktische Erfindung. "Informatiker-Kilo" wäre sicher noch weniger akzeptiert worden. ;-)

            ... und das werde ich auch so beibehalten.

            Aus Bequemlichkeit?

            Zumindest die Programmierer und die, die sehr eng mit der Technik zu tun haben, habe ich damit auf meiner Seite.

            Demnach waren an der Erfindung der 56k-Modems und des Y2k-Problems weder Programmierer noch von Techniker beteiligt? ;-)

            Zu den von dir angesprochenen Berufsgruppen würde ich übrigens noch die Fleischwarenfachverkäufer(innen) zählen, die schneiden ja gerne mal ein bisschen mehr ab -- es sei denn sie arbeiten bei Edeka.

            B.T.W.:

            ... Once upon a time, computer professionals noticed that 2^10 was very nearly equal to 1000 and started using the SI prefix "kilo" to mean 1024. That worked well enough for a decade or two because everybody who talked kilobytes knew that the term implied 1024 bytes. But, almost overnight a much more numerous "everybody" bought computers, and the trade computer professionals needed to talk to physicists and engineers and even to ordinary people, most of whom know that a kilometer is 1000 meters and a kilogram is 1000 grams.

            Quelle: Bruce Barrow, "A Lesson in Megabytes," IEEE Standards Bearer, January 1997 -- gefunden auf http://physics.nist.gov/cuu/Units/binary.html

            MffG
            EisFuX

            1. Hallo,

              102.4% ACK!
              Der war gut! :-)
              Obwohl, müssten in deinem binär-verdingsten Rechensystem 100 dezimale SI-Prozent nicht eher 2^8 == 128 entsprechen? ... oder 2^9 == 512 für die Potenzzahl mit dem  nächstkleineren Exponenten?

              nein, ich habe auf Promille als kleinste Einheit normiert. ;-)

              Hmmm, also bei meinen ersten Begegnungen mit der Welt der Datenverarbeitung in den 80-er Jahren bin ich recht schnell auf den feinen Unterschied zwischen kByte ("kilo-Byte", für 1000 Bisse) und KByte ("Kaa-Byte" für 1024 Bisse) gestoßen. Für die damalige Zeit reichte diese Unterscheidung zwischen kleinem "k" und großem "K" ja auch meistens aus.

              Die Schreibweise mit kleinem 'k' hat man mir eigentlich immer als richtig eingetrichtert, sowohl im Informatikunterricht in der Schule (soweit man das überhaupt so nennen darf), als auch nachher im Studium. Allerdings hieß es schon damals (vermutlich eine Andeutung eines schlechten Gewissens), man solle das dann bitte nicht als "kilo" aussprechen, sondern nur als "k".
              Wenn man sich nämlich von der Vorstellung löst, das "k" vornedran hätte die Bedeutung "kilo", sondern stattdessen einfach die Kürzel "kB", "MB" oder "GB" als Ganzes für eine eigenständige nicht-SI-Einheit sieht, ist die Welt wieder in Ordnung. So wie die Mediziner ihre Torr, die Ernährungsexperten ihre Kalorien[1], die Monitor- und Datenträgerhersteller sowie die Elektroniker ihre Zoll und die KFZ-Industrie ihre PS verwenden.

              ... und das werde ich auch so beibehalten.
              Aus Bequemlichkeit?

              Gewohnheit. Und ein bisschen Sturheit.

              Zumindest die Programmierer und die, die sehr eng mit der Technik zu tun haben, habe ich damit auf meiner Seite.
              Demnach waren an der Erfindung der 56k-Modems und des Y2k-Problems weder Programmierer noch von Techniker beteiligt? ;-)

              An der Begriffsfindung wohl nicht. An der Realisierung bzw. Lösung nachher schon.

              Wobei ich es sowieso verblüffend finde, dass auch die Informatiker beim Bezug auf Übertragungsraten plötzlich in 1000er-Portionen denken. Schließlich bringt es ein 56k-Modem tatsächlich auf eine theoretische Übertragungsrate von 56000 und nicht 57344bps[2]. Und ein 2Mbit-DSL-Anschluss bietet dem Kunden tatsächlich rund 2*10^6 und nicht 2*2^20 bps.

              ... Once upon a time, computer professionals noticed that 2^10 was very nearly equal to 1000 and started using the SI prefix "kilo" to mean 1024. That worked well enough for a decade or two because everybody who talked kilobytes knew that the term implied 1024 bytes. But, almost overnight a much more numerous "everybody" bought computers, and the trade computer professionals needed to talk to physicists and engineers and even to ordinary people, most of whom know that a kilometer is 1000 meters and a kilogram is 1000 grams.

              Was lernen wir daraus? Der Kontext kann die Bedeutung verändern. Nicht dass das etwas Neues wäre ...

              So long,
               Martin

              [1] Die sind ja noch schlimmer: Nicht nur, dass die Kalorie keine SI-Einheit ist und daher in Joule gerechnet weden sollte - die schämen sich auch nicht, von "Kalorien" zu reden, obwohl sie eigentlich Kilokalorien meinen!
              [2] Sagt zumindest die Spezifikation, obwohl die sogar mehr als 56k erlaubt hätte, in der Praxis die 56k aber sowieso nie erreicht wurden.

              --
              Hannes würfelt abends immer, ob er den Abend mit seiner Frau zuhause verbringt oder in die Kneipe geht. Wenn er eine 6 würfelt, geht er in die Kneipe.
              Gestern musste er 37mal würfeln.