- 1
- 2
- 3
def decode_flag(event_states: str) -> bool:
flag = 1 if int(event_states, 16) & 10_000_000_000_000_000 else 0
return bool(flag)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
def decode_flag(event_states: str) -> bool:
flag = 1 if int(event_states, 16) & 10_000_000_000_000_000 else 0
return bool(flag)
Кусок из реального коммерческого проекта
Есть стринга из 8 символов - флагов (0 или 1), но нас интересует только 4 символ в ней
Soul_re@ver 11.09.2022 18:16 # +1
Мне нравится, как типы проаннотировали, а внутри полную хуйню написали.
Soul_re@ver 11.09.2022 18:25 # 0
guest6 11.09.2022 19:58 # 0
guest6 11.09.2022 18:22 # 0
guest6 11.09.2022 20:49 # 0
guest6 11.09.2022 21:29 # 0
Чтобы проще было кококонкатенировать с другими строками.
bormand 11.09.2022 19:44 # 0
А нет, если константу перевести в хекс, то её хвост будет 0x6FC10000. Нечётные цифры стоят в позициях 2 и 4, т.е. эта штука проверяет event_states[1] or event_states[3].
bormand 11.09.2022 20:00 # +1
event_states[0] - 1_000_000_000_000_000_000_000
event_states[1] - 10_000_000_000_000_000_000
event_states[2] - 10_000_000_000_000
event_states[3] - 1_000_000
event_states[4] - 100_000
event_states[5] - 1_000
event_states[6] - ?
event_states[7] - 1
Support 11.09.2022 21:37 # 0
Soul_re@ver 11.09.2022 20:02 # 0
То есть 4 бита на символ, установлен может быть только первый из каждой четвёрки.
Если посмотреть на константу, то проверит она [4] и [6]. Блядь, я с конца строки считаю. Всё правильно написано.
bormand 11.09.2022 20:07 # 0
Интересно, можно ли ма-те-ма-тически доказать, что не существует такого n, что (10**n) & 0x11111111 == 0x00001000?
guest6 11.09.2022 19:58 # 0