J'ai fait exactement la même chose il y a six mois, juste pour m'amuser, en m'inspirant de l'enum TimeUnit.
Je le téléchargerai sur GitHub demain. Il contient deux enums : BitUnit
y ByteUnit
. Les deux permettent également la conversion entre les deux. ByteUnit prend en charge les préfixes à 2 bases ainsi que les préfixes à 10 bases. (Les constantes et méthodes de l'énumération dans ByteUnit
utiliser la terminologie de la CEI 80000-13 pour les préfixes).
L'utilisation se présente comme suit :
System.out.println(BitUnit.KBIT.toKiB(16000));
System.out.println(ByteUnit.GIB.toMB(1));
System.out.println(ByteUnit.GIB.toMiB(1));
System.out.println(ByteUnit.GB.toMB(1));
System.out.println(ByteUnit.GB.toMiB(1));
... et l'imprime :
1953.125
1073.741824
1024.0
1000.0
953.67431640625
Pour les méthodes de conversion entre bits et octets, vous avez surchargé les méthodes pour spécifier une taille de mot autre que 8 bits par octet. J'espère que vous pouvez attendre jusqu'à demain.
EDIT
Nous y sommes : https://github.com/fabian-barney/Utils
Ne me blâmez pas pour la structure des répertoires - je ne suis pas encore familier avec Git :)