neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 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.
C'est toujours bien de se renseigner avant de dire des inepties.
dark_nemo
Messages postés16Date d'inscriptionmardi 18 novembre 2003StatutMembreDernière intervention23 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és2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 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');
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...
3 janv. 2011 à 14:43
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.
3 janv. 2011 à 13:54
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.
3 janv. 2011 à 13:18
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...