- 1
- 2
- 3
- 4
- 5
case '16':
dm("sixteenth");
*b_=FULL_NOTE_DURATION_TCK/16 & 0x0F;
*c_=(FULL_NOTE_DURATION_TCK/16 & 0xF0) >> 8;
break;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+146
case '16':
dm("sixteenth");
*b_=FULL_NOTE_DURATION_TCK/16 & 0x0F;
*c_=(FULL_NOTE_DURATION_TCK/16 & 0xF0) >> 8;
break;
Человек парсил хексы из строки и задумался немного при копировании блоков в свитче.
Lure Of Chaos 05.09.2011 22:47 # 0
absolut 05.09.2011 23:06 # 0
TarasB 06.09.2011 11:41 # 0
Lure Of Chaos 06.09.2011 11:44 # +1
TarasB 06.09.2011 12:00 # +1
Например, ботланд вообще забил на корректность сдвига для знаковых типов, поэтому лепит shr одинаково для знаковых и беззнаковых типов (нормальные люди для знаковых типов делают sar):http://www.gamedev.ru/code/forum/?id=138759, самый ржач, когда код -7 shr 1 получает что-то очень большое, а в отладчике показывается -4.
Но даже sar означает не то же самое, что интеловское деление.
Например, -1 >> 1 будет равно -1, собственно, как и требуется по правилам арифметики (http://ru.wikipedia.org/wiki/Деление_с_остатком, обратие внимание на 0<=r), но идиоты из интела зачем-то сделали для этого случая отрицательный остаток, и это пиздец как неудобно - например я хочу координаты объекта перевести в номер занимаемой ячейки, я делю на 100, и получаю неверный номер для отрицательных чисел.
Lure Of Chaos 06.09.2011 12:02 # +2
TarasB 06.09.2011 12:07 # 0
CPPGovno 06.09.2011 12:14 # 0
roman-kashitsyn 06.09.2011 12:18 # +2
absolut 06.09.2011 13:06 # 0
TarasB 06.09.2011 13:15 # +10
CPPGovno 06.09.2011 12:46 # 0
TarasB 06.09.2011 13:18 # +2
Я троллил тут: http://www.gamedev.ru/code/forum/?id=139163
CPPGovno 06.09.2011 22:07 # 0
CPPGovno 06.09.2011 22:17 # 0
CPPGovno 06.09.2011 22:27 # 0
inkanus-gray 06.09.2011 23:05 # +1
Может быть, в Луркоморье запостить?
gegMOPO4 07.09.2011 14:55 # +1
bugmenot 08.09.2011 09:57 # 0
roman-kashitsyn 08.09.2011 10:14 # +3
раз он их так любит
Govnoeb 07.09.2011 08:51 # +1
далее
5.8.3
The value of E1 >> E2 is E1 right-shifted E2 bit positions. If E1 has an unsigned type or if E1 has a signed type and a non-negative value, the value of the result is the integral part of the quotient of E1/2^E2. If E1 has a signed type and a negative value, the resulting value is implementation-defined
слив не мой, я просто разместил объяву
gegMOPO4 07.09.2011 14:49 # 0
Govnoeb 07.09.2011 18:57 # 0
т.е. -43 = 6 * (-7) + (-1) и 43 = (-6) * (-7) + 1 тру
-43 = 7 * (-7) + (6) и 43 = (-7) * (-7) + (-6) не тру
касательно 5.8.3 - это взято из "Working Draft" нового стандарта. если есть че поновей, будь добр, кинь ссылку
gegMOPO4 07.09.2011 19:28 # 0
Новее N3242 вроде в публичном доступе нет.
guest 06.09.2011 11:20 # +3
Lure Of Chaos 06.09.2011 11:25 # −6
roman-kashitsyn 06.09.2011 11:55 # +2
'16' - это мульти-символьный литерал, они зависят от реализации и не рекомендуются к использованию (gcc ругается ворнингами). Ведёт он себя довольно весело:
выводит <<'16' is 12598>>, а
выводит <<'16' is 54>>
Lure Of Chaos 06.09.2011 11:56 # 0
круто
inkanus-gray 06.09.2011 14:24 # +1
Все символы, кроме последнего, как заметил absolut, игнорируются. По идее так должно быть только на Little Endian. Надо проверить на Big Endian и сравнить. Если моя гипотеза верна, то
'16' == '6' на little endian;
'16' == '1' на big endian.
Следовательно, у нас хакерский код для определения порядка байтов.
absolut 06.09.2011 13:44 # +1
И вообще, char a='16'; char b='q6'; char c='xyz6'; дают одинаковые результаты из-за усечения.
roman-kashitsyn 06.09.2011 14:24 # +1
Понятно, что дело в отсечении: 0x3136 не помещается в char. В этом весь смысл "примера". В общем, автор кода явно разместил в case совсем не то, что нужно.
gegMOPO4 06.09.2011 15:48 # +3
SmackMyBitchUp 06.09.2011 13:28 # 0
ПыСы: двойка - это 2, а не 1! Радуйтесь.
Lure Of Chaos 06.09.2011 16:25 # 0
SmackMyBitchUp 07.09.2011 20:27 # +1
guest 06.09.2011 15:55 # 0
А чего вы хотели от уставшего человека посреди ночи? xD Сам ржал с этого. xDDD
guest 06.09.2011 15:56 # 0
Lure Of Chaos 06.09.2011 16:25 # 0
gegMOPO4 06.09.2011 16:38 # 0
gegMOPO4 06.09.2011 15:45 # 0