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

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    #include <stdio.h>
    
    int main()
    {
    	for (int x; scanf("%d", &x);) {
        	#define x x += x
        	x & (x-1);
        	printf("%d\n", x);
    	}
    	return 0;
    }

    https://ideone.com/SxgTL0

    -3 -28
    -2 -20
    -1 -12
    0 -4
    1 4
    2 12
    3 20

    Ничо нипанятна...

    Запостил: yet_another_one_shit, 01 Мая 2018

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

    • Что за хуитта происхоодит?
      Ответить
      • i = 5; i = ++i + ++i;
        Ответить
        • x += x & (x += x - 1);
          Тоже UB?

          Даже если так, то в какой последовательности надо расположить действия, чтобы получились такие результаты?
          Ответить
          • > в какой последовательности
            x += (x & (x += x - 1)), причём побочка от x += y сразу применилась.

            Версия без UB:
            x += (x - 1);
            x += x; // x += x & x, если хочется понять куда пропал &
            x += x; // спрятано в printf
            https://ideone.com/r30L9y
            Ответить

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