CONVERSION DES UNITÉS INFORMATIQUE (O, KIO, MIO, GIO, TIO...)

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 3 janv. 2011 à 13:18
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 3 janv. 2011 à 14:43
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52672-conversion-des-unites-informatique-o-kio-mio-gio-tio

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
3 janv. 2011 à 14:43
Depusi un peu plus de 10 ans maintenant, il a été défini dans le Système Internationnal que 1 Ko = 1000 octets.
Et que 1Kio = 1024 Octets.
Cette source prend en compte les deux unités.

http://fr.wikipedia.org/wiki/Kilooctet

C'est toujours bien de se renseigner avant de dire des inepties.
dark_nemo Messages postés 16 Date d'inscription mardi 18 novembre 2003 Statut Membre Dernière intervention 23 septembre 2010
3 janv. 2011 à 13:54
1octet = 8bits (0000000000 à 11111111) donc 1Ko = 8 192 bits = 1024 octets (2^10) et non 1000 octets.
N'oublions pas que nous sommes dans les puissances de 2 (2,4,8,16,32,64,128,256,1024....), les machines comptent en base 2 avec des 0 et 1 (éteint ou allumé) et non en base 10.
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
3 janv. 2011 à 13:18
Salut,

Deux choses :
1/ Une classe pour faire juste ça, je trouve que c'est un peu excessif (mais ce n'est que mon opinion)
2/ Byte et Octet sont deux choses différentes. Ce n'est pas qu'une question de langue : un Byte est un mot d'une longueur de plusieurs bits (7, 8, 16, ...). En informatique, le plus courant est un Byte de 1 octet, soit 8 bits, mais ce n'est pas systématique. La traduction anglaise de "octet" est... "octet".
http://fr.wikipedia.org/wiki/Byte

Pour mon usage perso, je m'étais fait une eptite fonction que je considère comme étant plus simple et largement suffisante :
function format_size($size, $si = FALSE) {
$units_2 = array('o', 'Kio', 'Mio', 'Gio', 'Tio', 'Pio', 'Eio', 'Zio', 'Yio');
$units_si = array('o', 'Ko', 'Mo', 'Go', 'To', 'Po', 'Eo', 'Zo', 'Yo');

$pow = 0;

if ($si) {
$units = $units_si;
$divisor = 1000;
}
else {
$units = $units_2;
$divisor = 1024;
}

while ($size >= $divisor) {
if ($pow > 8) {
break;
}
$size /= $divisor;
$pow++;
}

return round($size, 2).' '.$units[$pow];
}

Certes, elle ne convertit pas d'une unité en une autre, mais cette fonctionnalité de conversion ne me paraît pas du tout indispensable (autant j'ai déjà été amené à concvertir en octets ou en l'unité la plus grande possible avec la valeur comprise entre 0 et 1023), autant je n'ai jamais eu à convertir d'une unité en une autre, en 13 ans...
Rejoignez-nous