- 1
pow(2.0, n)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−11
pow(2.0, n)
Antervis 11.09.2015 07:09 # 0
3_14dar 11.09.2015 10:01 # 0
guest 11.09.2015 10:21 # +1
bormand 11.09.2015 17:21 # +7
3_14dar 11.09.2015 18:27 # 0
1024-- 11.09.2015 19:28 # +4
2. union позволяет обращаться к одному и тому же куску памяти как к переменным с разными типами данных. В данном случае double интерпретируется как int64 и наоборот.
3. Борманд формирует такое целое число, которое соответствует требуемой степени двойки и пишет его напрямую в экспоненту, сдвигая на размер мантиссы.
4. Первая цифра мантиссы всегда единица, потому игнорируется, следовательно, 52 нуля означают единицу.
3_14dar 11.09.2015 20:22 # −1
bormand 11.09.2015 20:56 # 0
Только если ты покажешь, как сдвигами возвести произвольное целое число в произвольную степень ;)
Понятно, что эти хаки работают только для степеней двойки.
3_14dar 11.09.2015 21:23 # −1
Elvenfighter 11.09.2015 19:04 # 0
Antervis 14.09.2015 05:48 # 0
bormand 14.09.2015 17:44 # 0
Во что?
Antervis 15.09.2015 05:50 # 0
defecate-plusplus 15.09.2015 10:38 # 0
разве что подставит конечное значение, если во время компиляции будут известны все аргументы
TarasB 15.09.2015 10:32 # +3
Давай, возведи двойку в степень 0.5
bormand 15.09.2015 17:45 # 0
Бля. Точно.
3_14dar 11.09.2015 18:26 # 0
bormand 11.09.2015 17:08 # +3
3_14dar 11.09.2015 18:26 # 0
3_dar 11.09.2015 19:55 # 0
for(i = 0; i < pow(2, n); i++)
3_dar 11.09.2015 19:57 # 0
3_14dar 11.09.2015 20:21 # +2