- 1
- 2
- 3
- 4
- 5
- 6
- 7
return suffix == ' ' ? ssize : (
si ? ssize + suffix : (
suffix == ' ' ? ssize + suffix : (
ssize + suffix + "iB"
)
)
);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+73
return suffix == ' ' ? ssize : (
si ? ssize + suffix : (
suffix == ' ' ? ssize + suffix : (
ssize + suffix + "iB"
)
)
);
Ведь всего-то навсего
if (suffix == ' ') return ssize;
if (si) return ssize + suffix;
return ssize + suffix + "iB";
Если по стандартам СИ:
К - Килобайт = 1000 байт
M - Мегабайт = 1000000 байт
G - Гигабайт = 1000000000 байт
По стандартам МЭК
KiB - Кибибайт = 1024 байт
MiB - Мебибайт = 1048576 байт
GiB - Гибибайт = 1073741824 байт
boolean si - определяет, выводить ли инфу и считать с приставками СИ, или МЭК
http://ru.wikipedia.org/wiki/Двоичные_приставки
2) StringBuilder тут не поможет сильно. ибо для возвращения результата создается максимум один новый обьект.
P.S. тоесть StringBuffer, ибо это Java ME.
Не могу понять одного, зачем тебе жужжатьнужны десятичные приставки, если ты не пчелапроизводитель памяти. По-моему, так.
Считаем с десятичными приставками
$ ls -l --si
total 95k
-rw-r--r-- 1 doctor users 1.4k Apr 21 15:26 DaCanvas.class
-rw-r--r-- 1 doctor users 79k Jun 17 2010 DroidSansMono.ttf
-rw-r--r-- 1 doctor users 2 Apr 21 16:13 file.txt
-rw-r--r-- 1 doctor users 1.1k Apr 21 15:26 Main.java
Считаем с привычными приставками
$ ls -lh
total 92K
-rw-r--r-- 1 doctor users 1.4K Apr 21 15:26 DaCanvas.class
-rw-r--r-- 1 doctor users 77K Jun 17 2010 DroidSansMono.ttf
-rw-r--r-- 1 doctor users 2 Apr 21 16:13 file.txt
-rw-r--r-- 1 doctor users 1007 Apr 21 15:26 Main.java
Как видите, нормальные приложения позволяют делать и так и сяк, и B к байтам не добавляют (file.txt - 2 bytes).
Только я заменил, например для кило K на KiB, и k на K, что будет правильтно по стандартам МЭК.
и где это приставки не нужны?
мне, пожалуйста, хард на 10^12 байт
мне, пожалуйста, хард на 12 порядков байт
но подозреваю, что многие по привычке понимают по умолчанию кратность х1000, а не х1024