- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
function IntToHex(N: integer): string;
const
S = '0123456789ABCDEF';
var
i: integer;
begin
SetLength(Result, 8);
for i := 0 to 7 do Result[8 - i] := S[N shr (i shl 2) and $0F + 1];
end;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+67
function IntToHex(N: integer): string;
const
S = '0123456789ABCDEF';
var
i: integer;
begin
SetLength(Result, 8);
for i := 0 to 7 do Result[8 - i] := S[N shr (i shl 2) and $0F + 1];
end;
Носки менял, ноги мыл, все равно воняет хаккирством.
И оно почему-то в модуле WinAPI.pas у Тараса лежит о_О
bormand 23.11.2012 15:51 # 0
krypt 23.11.2012 16:57 # 0
krypt 23.11.2012 17:58 # +4
i shl 2 - это умножение на 4.
and $0F - сохраняет последние 4 бита , остальные обнуляет.
В результате в цикле мы двигаем окно в 4 бита, которое используем как индекс в строке. Хотя я бы таки использовал массив [0..15], чтобы не делать "+1". И, возможно, не стоит заботится о сохранности значения N, и делать ему каждый раз shr 4, но это уже надо смотреть асмовый код :)
inkanus-gray 23.11.2012 18:06 # +1
А так, да, никакого хаккирства нет.
krypt 23.11.2012 18:29 # +2
А конкатенация - явно не быстрее, чем битовый сдвиг.
inkanus-gray 23.11.2012 18:04 # 0
bormand 23.11.2012 18:29 # 0
inkanus-gray 23.11.2012 19:09 # +2
PascalGovno 23.11.2012 19:16 # 0
TarasB 23.11.2012 18:19 # +2
inkanus-gray 23.11.2012 19:09 # 0
bormand 23.11.2012 19:11 # +7
guest 24.11.2012 09:31 # +3
bormand 24.11.2012 09:48 # +6
guest 23.11.2012 19:42 # +2
haker 23.11.2012 19:45 # +2
PascalGovno 23.11.2012 19:20 # −3
TarasB 23.11.2012 19:30 # −2
Ты знаешь значение этого слова?
PascalGovno 23.11.2012 20:42 # 0
krypt 23.11.2012 22:55 # 0
Клон Crimsonland
Chr-редактор
У меня совершенно странный вопрос. Клон Crimsonland в млаженчестве случайно не "Dekanat" (или вроде) назывался, и не из лабы ли вырос?
TarasB 23.11.2012 22:58 # 0
krypt 23.11.2012 23:09 # 0
TarasB 23.11.2012 23:26 # 0
krypt 24.11.2012 00:24 # 0
TarasB 24.11.2012 00:43 # 0
krypt 24.11.2012 01:04 # 0
TarasB 24.11.2012 11:00 # 0
guest 24.11.2012 12:34 # −3
Fai 24.11.2012 13:03 # 0
guest 24.11.2012 23:47 # 0
http://govnokod.ru/11225#comment142886
TarasB 24.11.2012 13:11 # +1
Ставлю на Капитана Очевидность, потому что Капитан Тавтология ошибётся, подумав, что моё имя "ТарасБ".
Fai 24.11.2012 13:26 # +1
Бельбас причем реальная фамилия.
Реальное: Березняк Тарас Валерьевич
LispGovno 24.11.2012 19:57 # −1
guest 24.11.2012 19:31 # −1
krypt 24.11.2012 20:24 # 0
Напишу на tarasber собако mail.ru
А в качестве валидации, что это я - прикло какой-нибудь набор букв в ответ, я ту т их выложу
guest 24.11.2012 20:55 # −2
набор букв следующий: ко
krypt 24.11.2012 20:59 # 0
Валидация пройдена? )
TarasB 24.11.2012 21:08 # 0
inkanus-gray 24.11.2012 21:10 # +3
bormand 24.11.2012 21:20 # 0
TarasB 24.11.2012 21:33 # +2
TarasB 24.11.2012 21:33 # −2
bormand 24.11.2012 21:41 # 0
Fai 24.11.2012 21:57 # 0
bormand 23.11.2012 19:39 # +1
Бенчмарки на ideone это круто.
TarasB 23.11.2012 20:41 # +2
bormand 23.11.2012 21:00 # +4
PascalGovno 23.11.2012 22:05 # 0
http://govnokod.ru/12137#comment161471
TarasB 23.11.2012 22:44 # −1
tirinox 24.11.2012 13:23 # 0
PascalGovno 23.11.2012 20:48 # −1
anonimb84a2f6fd141 25.11.2012 00:03 # −3