- 1
- 2
float factor = ((float)sizeof(char) / sizeof(wchar_t));
fileSize = (long)((float)fileSize * factor);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+57
float factor = ((float)sizeof(char) / sizeof(wchar_t));
fileSize = (long)((float)fileSize * factor);
вот так выглядит деление на sizeof(wchar_t) :)
guest 18.11.2014 11:30 # 0
guest 18.11.2014 11:31 # 0
guest 18.11.2014 11:48 # 0
long fileSize = ...;
double factor = (double)sizeof(char) / sizeof(wchar_t);
fileSize = fileSize * factor;
и внезапно все не так уж и страшно
Soul_re@ver 18.11.2014 15:29 # 0
guest 18.11.2014 15:53 # +2
TarasB 18.11.2014 18:04 # 0
guest 18.11.2014 18:11 # +1
Как не тебе, г-девщику это знать
TarasB 18.11.2014 18:12 # 0
Анонимус 19.11.2014 16:10 # 0
Хотите сказать тут хватит целочисленки?
Тоесть сам факт деления размера чара на размер широко чара с последующим умножением на размер файла кажется Вам вполне себе бест-практисом?
Psionic 19.11.2014 16:41 # 0
guest 18.11.2014 18:15 # 0
TarasB 18.11.2014 18:22 # 0
Анонимус 19.11.2014 02:57 # +1
kipar 19.11.2014 11:55 # +2
bormand 19.11.2014 12:21 # +1
Анонимус 19.11.2014 16:14 # 0
bormand 19.11.2014 16:18 # 0
Анонимус 19.11.2014 16:21 # 0
Но мне почему-то кажется что для такой задачи вполне хватит такого вот представления
1024-- 19.11.2014 16:31 # 0
В целых числах всё равно fileSize округляется. Если взять число не короче, чем sizeof(decltype(fileSize)) + log2(sizeof(char)), то всё должно нормально работать для любых fileSize. Или тут ещё подвох есть?
1024-- 19.11.2014 16:38 # 0
TarasB 19.11.2014 16:42 # 0
1024-- 19.11.2014 16:46 # +1
guest 22.11.2014 00:29 # 0
/*другой гость*/
TarasB 19.11.2014 12:34 # 0
Анонимус 19.11.2014 15:29 # 0
guest 18.11.2014 18:13 # 0
Анонимус 19.11.2014 01:36 # +1
noganno 25.08.2021 08:35 # 0