Ответ 1
Я сделал точно так, как это было полгода назад, просто для удовольствия, вдохновленного тайм-аутом TimeUnit.
Я загружу его завтра в GitHub. Он содержит два перечисления: BitUnit
и ByteUnit
. Оба они также поддерживают преобразование между собой. ByteUnit имеет поддержку префиксов на основе 2, а также для префиксов на основе 10. (Константы и методы enum в ByteUnit
используют термины IEC 80000-13 для префиксов.)
Использование выглядит следующим образом:
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));
... и распечатывает:
1953.125
1073.741824
1024.0
1000.0
953.67431640625
Для методов конвертации между битами и байтами вы перегружали методы, чтобы указать размер слова, отличный от 8 бит на каждый байт. Надеюсь, вы можете подождать до завтра.
ИЗМЕНИТЬ
Вот вы: https://github.com/fabian-barney/Utils
Не обвиняйте меня в структуре каталогов - пока я еще не знаком с Git.:)