CALCUL ORDRE DE GRANDEUR AUTOMATIQUE POUR TAILLE DE FICHIER (OCTET, KO, MO, GO,
matrey
Messages postés399Date d'inscriptionjeudi 31 janvier 2002StatutMembreDernière intervention 6 septembre 2004
-
24 juin 2004 à 10:57
seyvapul
Messages postés39Date d'inscriptionvendredi 15 juillet 2005StatutMembreDernière intervention 4 juin 2017
-
19 févr. 2008 à 17:38
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
seyvapul
Messages postés39Date d'inscriptionvendredi 15 juillet 2005StatutMembreDernière intervention 4 juin 2017 19 févr. 2008 à 17:38
Une toute petite précision concernant la norme sur les unités mémoires des machines :
1 Ko avec un K majuscule c'est 1024 octets.
1 ko avec un k minuscule c'est 1000 octets.
Au delà, ce ne sont plus des puissance de 2 qui servent de multiplicateurs.
Ainsi 1M "Méga" c'est 1000 kilo et 1G "Giga" c'est 1000 méga de même que actuellement, 1T "Téra" c'est 1000 giga.
Ainsi :
1 To = 1000*1000*1000*1024 octets.
1 Go = 1000*1000*1024 octets.
1 Mo = 1000*1024 octets.
1 Ko = 1024 octets.
Pour info, même si globalement cela n'a que peu d'importance.
cs_GRenard
Messages postés1662Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention30 juillet 20081 11 avril 2005 à 17:48
J'ai arrangé ça, tu as raison. J'ai expliqué pourquoi dans l'Explication finale. J'ai mis un count, c'est sur que j'aurais pu mettre aussi un 4 pour améliorer la rapidité.
J'ai rajouté une fonction d'arrondissement à la virgule... Je l'avais fait il y a longtemps mais je ne l'avais pas mis à jour ici :)
Donc le chiffre que vous entrez est le nombre de chiffre après la virgule que vous voulez ou -1 si vous ne voulez pas d'arrondi.
jb_gfx
Messages postés8Date d'inscriptionmardi 30 mars 2004StatutMembreDernière intervention16 octobre 2006 11 avril 2005 à 12:26
Il fallait bien sûr lire :
while(($octet>=1024) && ($count < 4)) {
($count inférieur à 4).
Maudite touche majuscule... :P
jb_gfx
Messages postés8Date d'inscriptionmardi 30 mars 2004StatutMembreDernière intervention16 octobre 2006 11 avril 2005 à 12:18
Merci pour cette sympathique "petite" fonction.
Par contre je me permet d'ajouter une petite correction (sans doute un oubli) :
Il faut remplacer la ligne :
while($octet>=1024){
Par :
while(($octet>=1024) && ($count > 4)) {
Sinon on a une erreur d'affichage (variable non définie) et il manque l'unité si on dépasse la dizaine de Tera octects. Bon ça doit pas arriver souvent mais comme cette fonction est générique et peut être utilisée pour autre chose qu'afficher des tailles de fichiers je pense qu'il est bon de corriger (de toute façon autant faire au mieux, non?).
cs_GRenard
Messages postés1662Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention30 juillet 20081 7 juil. 2004 à 19:05
Différent de Kb et Ko ! attention à ca.
Magicking
Messages postés195Date d'inscriptionvendredi 13 octobre 2000StatutMembreDernière intervention 8 juillet 2004 7 juil. 2004 à 16:18
Je suis d'accord avec toi defkrie mais les standards sont les standards... ce n'est pas à nous qu'il faut l'expliquer...
defkrie
Messages postés435Date d'inscriptionvendredi 20 septembre 2002StatutMembreDernière intervention20 novembre 2004 7 juil. 2004 à 11:37
vous en avez la preuve dans presque tous les machines qui vous entourent.....
defkrie
Messages postés435Date d'inscriptionvendredi 20 septembre 2002StatutMembreDernière intervention20 novembre 2004 7 juil. 2004 à 11:31
petit rappel d'info industriel pour les nuls
La mémoire n'est qu'un ensemble de 1 et de 0 appelés «bits». Tout comme si vous comptiez sur vos doigts, c'est probablement de là que vient le terme «digital». Lorsqu'ils sont groupés ensembles, vous pouvez en compter un grand nombre, ou représenter tous les caractères de l'alphabet (si vous utilisez un motif unique de 1 et de 0 pour représenter chaque caractère). La mémoire des ordinateurs possède un tas de ces bits (digits).
Les bits qui sont groupés par 8, sont appelés octets (byte en anglais). Chaque octet renferme une valeur entre 0 et 255, où est utilisé pour représenter un caractère de l'alphabet (ou un symbole). En regroupant des octets vous pouvez créer de gros nombres, ou des pages de caractères (mots, phrases, paragraphes, etc.).
Les octets sont groupés en kilo-octets ou «K», ce n'est pas équivalent à 1000 octets, mais presque. Ces groupements peuvent être en millions (mega-octets), milliards (giga-octets), trillions (tera-octets), quadrillons (peta-octets), et ainsi de suite.
Les gens pensent habituellement en base 10 -- 10, 100, 1000 et ainsi de suite. Alors nous utilisons ces groupements pour compter les groupements dans les ordinateurs. Cependant les ordinateurs utilisent la puissance 2 (et non pas 10). Alors le nombre le plus près de 1000 à la puissance 2 est 1024 (2 à la puissance 10). La majorité des gens arrondissent 1024 à 1000 et appellent cela 1K, mais cette erreur d'arrondissement sème la confusion. Examinez la table qui suit et voyez ce qui se passe.
Nom
La bonne manière
La manière paresseuse
Kilo-octets 2^10 = 1,024 octets 1,000 (2.4% d'erreur)
Alors souvenez-vous que 1K dans le langage des ordinateurs équivaut à 1024 octets et non pas à 1000.
cs_GRenard
Messages postés1662Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention30 juillet 20081 7 juil. 2004 à 02:14
C'est moi qui ait raison, prend n'importe quel fichier avec windows ou linux la... c'est bien 1024... bon pour etre plus précis, je pourrais changer et marquer : bytes, kb, mb, gb, tb
Magicking
Messages postés195Date d'inscriptionvendredi 13 octobre 2000StatutMembreDernière intervention 8 juillet 2004 7 juil. 2004 à 00:33
1Kilo = 1024 Octet n'est plus standard depuis 1998
Maintenant 1Kilo = 1000 Octet
defkrie
Messages postés435Date d'inscriptionvendredi 20 septembre 2002StatutMembreDernière intervention20 novembre 2004 24 juin 2004 à 21:25
Je confirme un kilo fait bien 1024 octets, cest de l'informatique (revoir les bits et les puissances de deux) or certains voyant kilo ce sont dis tiens sa doit etre 1000.
frachement pas mal les gas cest les machines pensés comme cela elles auraient bien des problèmes.
Taka_s_tiger
Messages postés32Date d'inscriptionsamedi 31 janvier 2004StatutMembreDernière intervention 5 juillet 2006 24 juin 2004 à 16:47
matrey> je ne crois pas qu'il existe de "norme publique" et que c'est des gens qui ne sont pas interessé a aprendre les conventions précises, 1024 dans ce cas ci, qui ce fie au préfixe kilo ou mega..qui signifit mille ou million.
LocalStone
Messages postés514Date d'inscriptionmercredi 19 mars 2003StatutMembreDernière intervention 1 mars 2009 24 juin 2004 à 12:38
Je crois que Matrey à raison ... Enfin quoi qu'il en soit, j'aime bien ta façon de penser les lignes du code ... C'est stupide, mais bon ... Bah voilà quoi.
LS.
++
matrey
Messages postés399Date d'inscriptionjeudi 31 janvier 2002StatutMembreDernière intervention 6 septembre 2004 24 juin 2004 à 10:57
En théorie le kilo octet fait 1024 octets, mais il me semble si je dis pas de bétises que pour le grand public la "norme" a été arrondie à 1000... Je ne sais pas exactement ce qu'il en est actuellement...
19 févr. 2008 à 17:38
1 Ko avec un K majuscule c'est 1024 octets.
1 ko avec un k minuscule c'est 1000 octets.
Au delà, ce ne sont plus des puissance de 2 qui servent de multiplicateurs.
Ainsi 1M "Méga" c'est 1000 kilo et 1G "Giga" c'est 1000 méga de même que actuellement, 1T "Téra" c'est 1000 giga.
Ainsi :
1 To = 1000*1000*1000*1024 octets.
1 Go = 1000*1000*1024 octets.
1 Mo = 1000*1024 octets.
1 Ko = 1024 octets.
Pour info, même si globalement cela n'a que peu d'importance.
11 avril 2005 à 17:48
J'ai rajouté une fonction d'arrondissement à la virgule... Je l'avais fait il y a longtemps mais je ne l'avais pas mis à jour ici :)
Donc le chiffre que vous entrez est le nombre de chiffre après la virgule que vous voulez ou -1 si vous ne voulez pas d'arrondi.
11 avril 2005 à 12:26
while(($octet>=1024) && ($count < 4)) {
($count inférieur à 4).
Maudite touche majuscule... :P
11 avril 2005 à 12:18
Par contre je me permet d'ajouter une petite correction (sans doute un oubli) :
Il faut remplacer la ligne :
while($octet>=1024){
Par :
while(($octet>=1024) && ($count > 4)) {
Sinon on a une erreur d'affichage (variable non définie) et il manque l'unité si on dépasse la dizaine de Tera octects. Bon ça doit pas arriver souvent mais comme cette fonction est générique et peut être utilisée pour autre chose qu'afficher des tailles de fichiers je pense qu'il est bon de corriger (de toute façon autant faire au mieux, non?).
7 juil. 2004 à 19:05
7 juil. 2004 à 16:18
Source:
http://www.commentcamarche.net/base/binaire.php3
http://physics.nist.gov./cuu/Units/binary.html
7 juil. 2004 à 11:37
7 juil. 2004 à 11:31
La mémoire n'est qu'un ensemble de 1 et de 0 appelés «bits». Tout comme si vous comptiez sur vos doigts, c'est probablement de là que vient le terme «digital». Lorsqu'ils sont groupés ensembles, vous pouvez en compter un grand nombre, ou représenter tous les caractères de l'alphabet (si vous utilisez un motif unique de 1 et de 0 pour représenter chaque caractère). La mémoire des ordinateurs possède un tas de ces bits (digits).
Les bits qui sont groupés par 8, sont appelés octets (byte en anglais). Chaque octet renferme une valeur entre 0 et 255, où est utilisé pour représenter un caractère de l'alphabet (ou un symbole). En regroupant des octets vous pouvez créer de gros nombres, ou des pages de caractères (mots, phrases, paragraphes, etc.).
Les octets sont groupés en kilo-octets ou «K», ce n'est pas équivalent à 1000 octets, mais presque. Ces groupements peuvent être en millions (mega-octets), milliards (giga-octets), trillions (tera-octets), quadrillons (peta-octets), et ainsi de suite.
Les gens pensent habituellement en base 10 -- 10, 100, 1000 et ainsi de suite. Alors nous utilisons ces groupements pour compter les groupements dans les ordinateurs. Cependant les ordinateurs utilisent la puissance 2 (et non pas 10). Alors le nombre le plus près de 1000 à la puissance 2 est 1024 (2 à la puissance 10). La majorité des gens arrondissent 1024 à 1000 et appellent cela 1K, mais cette erreur d'arrondissement sème la confusion. Examinez la table qui suit et voyez ce qui se passe.
Nom
La bonne manière
La manière paresseuse
Kilo-octets 2^10 = 1,024 octets 1,000 (2.4% d'erreur)
Mega-octets 2^20 = 1,048,576 octets 1,000,000 (4.8% d'erreur )
Giga-octets 2^30 = 1,073,741,824 octets 1,000,000,000 (7.4% d'erreur )
Tera-octets 2^40 = 1,099,511,627,776 octets 1,000,000,000,000 (9.9% d'erreur )
Peta-octets 2^50 = 1,125,899,906,842,674 octets 1,000,000,000,000,000 (12.6% d'erreur )
Alors souvenez-vous que 1K dans le langage des ordinateurs équivaut à 1024 octets et non pas à 1000.
7 juil. 2004 à 02:14
7 juil. 2004 à 00:33
Maintenant 1Kilo = 1000 Octet
C'est con mais c'est comme ça :/
Source:
http://www.commentcamarche.net/base/binaire.php3
http://physics.nist.gov./cuu/Units/binary.html
24 juin 2004 à 21:25
frachement pas mal les gas cest les machines pensés comme cela elles auraient bien des problèmes.
24 juin 2004 à 16:47
24 juin 2004 à 12:38
LS.
++
24 juin 2004 à 10:57