vak: (Default)
[personal profile] vak
Сложить два целых числа, вернуть целое. Породить исключение в случае арифметического переполнения.
int add(int a, int b);
Удивительно, сколько народу обламывается на этой задачке.

Date: 2020-08-02 16:17 (UTC)
vit_r: default (Default)
From: [personal profile] vit_r
Если нам нужна действительно базовая операция типа сложения, там надо оптимизировать до тактов, учитывая разрядность шины в байтах. То есть, или получать доступ к специальным функциям определённой архитектуры процессора, или делать какой-нибудь финт ушами типа проверки на смену знака, сравнения с разностью, проверки на особые случаи байтовыми операциями.

Короче, настоящий программист ломанётся в дебри и обязательно запутается, потому что не успеет продумать все ньюансы.

Date: 2020-08-02 16:38 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi

Я когда-то всю эту хрень на форте (т.е. на ассемблере, если кишки брать) программировал.