1. Си / Говнокод #29293

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    int mod(int a, int b) {
    	int r = 0, i;
    	for (i = 30; i >= 0; i--) {
    		r <<= 1;
    		if ((a >> i) & 1) {
    			r++;
    		}
    		while (r >= b)
    			r -= b;
    	}
    	return r;
    }

    Запостил: anime-girl, 10 Ноября 2026

    Комментарии (9) RSS

    • "что делать, если у вас есть необходимость получить остаток от деления и нету клавиш */%"
      Ответить
      • Однажды пришлось набирать программу на клавиатуре, у которой отвалились оба шифта.
        Ответить
        • Именно по-этому я за PASCAL и BASIC, там эти ваши РЕГИСТРЫ НеВаЖнЫ
          ФФьСеМьТьМоКки
          Ответить
        • У меня такой случай был однажды на олимпиаде по информатике (да, я «олимпиадник», точнее, был таковым)
          Ответить
      • Насколько я понимаю, единственная действительно важная операция это NAND. Всё остальное это сахар какой-то, так что МОДы и правда не нужны.
        Ответить
        • А если забудешь, как складывать два бита, можешь подглядеть на аве j123123.

          Только я не могу запомнить пиндосовские обозначения логических элементов. У нас просто: &amp; — это AND, 1 — это OR, =1 — XOR, кружочек — отрицание. А у пиндосов какие-то пиписьки.
          Ответить
        • Что, кстати, эффективней в смысле количества элементов для реализации часто используемых операций: nand или nor?
          Ответить
    • Ты дид, или ты диднт?
      Ответить

    Добавить комментарий