- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
Pyhton 2:
>>> (2**54/1) + 10 - 10 == 2**54
True
>>> (2**64/1) + 10 == 2**64
False
Pyhton 3:
>>> (2**54/1) + 10 - 10 == 2**54
False
>>> (2**64/1) + 10 == 2**64
True
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+2
Pyhton 2:
>>> (2**54/1) + 10 - 10 == 2**54
True
>>> (2**64/1) + 10 == 2**64
False
Pyhton 3:
>>> (2**54/1) + 10 - 10 == 2**54
False
>>> (2**64/1) + 10 == 2**64
True
Pyhton 2: https://ideone.com/iqwl8L
Pyhton 3: https://ideone.com/ltG9Fq
Ну охуеть теперь.
x + 10 - 10 != x в общем случае - это норма?
Я всё понимаю - тяжёлое детство, инты, прибитые к железу, но на кой чёрт в современных интерпретируемых языках такое говнище?
+2
// https://github.com/Samsung/ADBI/blob/3e424c45386b0a36c57211da819021cb1929775a/idk/include/division.h#L138
/* Long division by 10. */
static unsigned long long int div10l(unsigned long long int v) {
/* It's a kind of magic. We achieve 64-bit (long) division by dividing the two 32-bit halfs of the number 64-bit
* number. The first (most significant) half can produce a rest when dividing, which has to be carried over to the
* second half. The rest_add table contains values added to the second half after dividing depending on the rest
* from the first division. This allows evaluation of a result which is almost correct -- it can be either the
* expected result, or the expected result plus one. The error can be easily detected and corrected.
*/
/* one dream */
static unsigned long long int rest_add[] = {
0x00000000, 0x1999999a, 0x33333334, 0x4ccccccd, 0x66666667,
0x80000001, 0x9999999a, 0xb3333334, 0xcccccccd, 0xe6666667
};
/* one soul */
unsigned long long int a = div10((unsigned int)(v >> 32));
unsigned long long int b = div10((unsigned int)(v & 0xffffffff));
/* one prize */
int ri = (v >> 32) - a * 10;
/* one goal */
unsigned long long int ret = (a << 32) + b + rest_add[ri];
/* one golden glance */
if (ret * 10L > v) {
//printf("OGG %llu %llu\n", ret * 10, v);
--ret;
}
/* of what should be */
return ret;
}
Деление на 10. Но зачем? Неужели компилятор настолько туп, что сам не может этого сделать?
И да, эти туповатые комментарии one dream, one soul это отсылка к песне Queen - A Kind of Magic https://youtu.be/0p_1QSUsbsM
+2
MyType(const CopyPastedFromSomewhere&) = delete;
MyType& operator=(const CopyPastedFromSomewhere&) = delete;
MyType& operator=(const MyType*) = delete;
// Winner?
MyType& MyType(const MyType&) = delete;
А что можно найти в вашей кодовой базе? К слову, выяснилось, что вариант
void operator=(const MyType&) = delete;
вполне себе допустим.
+2
typedef unsigned int uint;
uint inc(uint i) {
return i+1;
}
uint dec(uint i) {
return i-1;
}
uint add(uint a, uint b) {
return 0==b ? a : add(inc(a),dec(b));
}
inline uint _mul(uint a, uint b, uint r) {
return 0==b ? r : _mul(a,b-1,r+a);
}
uint mul(uint a, uint b) {
return _mul(a,b,0);
}
uint dec_mul(uint a, uint b, uint r) {
return 0==b ? r : dec_mul(a,dec(b),r+a);
}
//gcc 7 здесь сходит с ума на O3, шланг невозмутимо ставит imul edi, esi
uint crazy_mul(uint a, uint b, uint r) {
return 0==b ? r : crazy_mul(a,dec(b),add(r,a));
}
//арифметическая прогрессия.
inline uint _sum(uint a,uint s) {
return a==0 ? s :_sum(a-1,s+a);
}
//gcc: сложна нипанятна
uint sum(uint a) {
return _sum(a,0);
}
//шланг:
// imul rcx, rax
// shr rcx
uint sum1(uint a) {
uint s=0;
for (int i=0;i<a;++i){
s+=i;
}
return s;
}
Смотрим как компиляторы решают разные упоротые рекурентные задачки.
https://godbolt.org/g/4JZuPr
+2
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Организация1 = Справочники.Организации.ПустаяСсылка();
Организация1 = Справочники.Организации.НайтиПоНаименованию("ХХХХХ Андрей Александрович ИП");
Организация = Организация1;
ОрганизацияШапка = Организация1;
Склад = Справочники.Склады.НайтиПоНаименованию("Сервис центр");
Контрагент = Справочники.Партнеры.НайтиПоНаименованию("Розничный покупатель");
ВидОперации = Перечисления.ВидРемонта.ПлатныйРемонт;
КонецПроцедуры;
Строка 3. Непонятно для чего введена переменная Организация1 (реквизита такого нет).
Строка 3. Непонятно для чего нужна инициализация пустой ссылкой, если в следующей строке происходит присваивание другого значения.
Строка5. Почему бы сразу не инициализировать реквизит нужным значением?
+2
Запрос = Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| ЗаказНаряд.Ссылка КАК Ссылка
|ИЗ
| Документ.ЗаказНаряд КАК ЗаказНаряд
|ГДЕ
| ЗаказНаряд.Проведен = ИСТИНА";
Выборка=Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Если обЗначениеНеЗаполнено(Выборка.Ссылка) Тогда
.......
Чуть упростил запрос для быстроты понимания...
Как проверить запрос ПУСТОЙ() или нет... Вот один из разработчиков нашел метод.....
+2
local lv = {"sdds"}
lv.act = function(foo)
foo(lv)
end
function start()
local x = function(self)
print(self[1])
end
lv.act(x)
end
start()
Такой значит, насоздаешь одинаковых шаблоных хуйн, а потом по какой-то причине одна из 82837273723 хуйн должна быть уникальна какой-то неведомой хуйней и приходится в (шаблоне, но в луа нет шаблонов!) таблице прописывать половой акт самим с собой, чтоб он смог мутировать в другую отличную от других неведомых хуй. Например стать бабочкой, но тогда придется в единной функции хуярить всю бабочку, ну можно много функций! Тем не менее оригинальная неведомая хуйня не пострадает.
О здаровка
+2
public class RussianNumberUtils {
public static String getRussianNumberFormat(String number) {
StringBuilder numberBuilder = new StringBuilder();
try {
numberBuilder.append("+");
numberBuilder.append(number.charAt(0));
numberBuilder.append(" (");
numberBuilder.append(number.substring(1, 4));
numberBuilder.append(") ");
numberBuilder.append(number.substring(4, 7));
numberBuilder.append("-");
numberBuilder.append(number.substring(7, 9));
numberBuilder.append("-");
numberBuilder.append(number.substring(9, Math.max(number.length(), 11)));
return numberBuilder.toString();
} catch (Exception e) {}
return number;
}
}
Форматирование русского номера телефона
+2
Telegram - считается "секьюрным" благодаря маркетенгу, вся его безопасность
основана на закрытости протокола.
Дискач.
+2
<?php
$s = "This";
$is = "an";
$of = "a";
$ninja = "coding";
$This = "is";
$a = "ninja";
$coding = "echo";
$an = "example";
$example = "of";
${null} = ' "$s';
function z($x,$c='$'){return $x==1?$c:z($x-1,$c.'$');}
for($i=1;$i<=7;$i++){${null}.=' ${'.z($i).'s}';}
eval($$$$$$$$$s.${null}.'\n";');
/* Returns:
This is an example of a ninja coding
*/
PHP очарователен
К посту http://govnokod.ru/23540