| TCH (statz) | ![]() #1, Főfasz (10579) |
1426 | #5723 | ^ | Idézet | Mon, 06 Mar 2023 22:36:30 +01 |
| 188.143.*.* |
|
*.pool.digikabel.hu |
| Saját kútfőből gondoltam, nem Wikipediából... :P De mindegy, itten az enyimek. Level 1, komparátorral: int signum(int x)
{
int s = (int)(x < 0);
int c = (int)(x > 0);
return (c - s) - (c & s);
}Level 2, komparátorok nélkül:int signum(int x)
{
int s = (x >> 31) & 1;
int c =
((x & 0x40000000) >> 30) |
((x & 0x20000000) >> 29) |
((x & 0x10000000) >> 28) |
((x & 0x08000000) >> 27) |
((x & 0x04000000) >> 26) |
((x & 0x02000000) >> 25) |
((x & 0x01000000) >> 24) |
((x & 0x00800000) >> 23) |
((x & 0x00400000) >> 22) |
((x & 0x00200000) >> 21) |
((x & 0x00100000) >> 20) |
((x & 0x00080000) >> 19) |
((x & 0x00040000) >> 18) |
((x & 0x00020000) >> 17) |
((x & 0x00010000) >> 16) |
((x & 0x00008000) >> 15) |
((x & 0x00004000) >> 14) |
((x & 0x00002000) >> 13) |
((x & 0x00001000) >> 12) |
((x & 0x00000800) >> 11) |
((x & 0x00000400) >> 10) |
((x & 0x00000200) >> 9) |
((x & 0x00000100) >> 8) |
((x & 0x00000080) >> 7) |
((x & 0x00000040) >> 6) |
((x & 0x00000020) >> 5) |
((x & 0x00000010) >> 4) |
((x & 0x00000008) >> 3) |
((x & 0x00000004) >> 2) |
((x & 0x00000002) >> 1) |
((x & 0x00000001) )
;
return (c - s) - (c & s);
} |