- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
#include <stdio.h>
int bts(unsigned int n, int bitN) {
return n & (1 << bitN);
}
int main() {
volatile char *p_lacoon;
unsigned char res = 0;
p_lacoon = ((unsigned )p_lacoon | 01 << 1);
res |= bts(p_lacoon, 0) | bts(p_lacoon, 1);
p_lacoon = ((unsigned )p_lacoon | 01 & ~!~0);
p_lacoon = ((unsigned )p_lacoon | 01 << 1 << 0);
res |= 4 << (bts(p_lacoon, 0) | bts(p_lacoon, 1) ^ 3);
p_lacoon = ((int)p_lacoon | 01 & ~0xFE | 00);
p_lacoon = ((int)p_lacoon | 01 << 1);
res |= ~!0xFF << (bts(p_lacoon, 0) | 6 ^ 0x29b);
res |= ~!0xFC << (bts(p_lacoon, 1) | 4 ^ 0x29c);
res |= ~!0xF0 << 5;
p_lacoon = (int)p_lacoon >> 01 >> 001 << 001 << 01;
printf("%x, %X %s\n", p_lacoon, (res & 001) ? res-1 : res, "*****. Challenge everything.");
}
Предтерминальная стадия мозгфускации.
Из собеса в подразделение AMD: продемонстрировать варианты хранения при недостатке памяти.
Работает в GCC, ICC, Clang только -O0.
Кто хочет разобраться - welcome https://godbolt.org/z/hd4eYeM1Y
Результат ! — либо ноль, либо единица, это же синоним операции ==0.
~!0xF0 — это всего лишь минус единица.