Funktionserläuterung
Narfo
- programmiertechnik
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
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
(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
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
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
Grüße,
na und? mathematiker nennen ihre sachen auch mit exestierenden begriffen, und allerwelt akzeptiert es.
wieso dürfen informatiker es nicht?
MFG
bleicher
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?
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
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
Grundlage für Zitat #1166.
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
(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
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.