Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma compat 1
- #include <a_samp>
- #define d16b%0<%1,%2> new %0 = (%2 << 32) | (%1 << 16)
- #define a16b(%1,%2) (%2 << 32) | (%1 << 16)
- #define g16b(%0,%1) ((%0 >>> (16 << %1)) & 0xFFFF)
- #define s16b(%0,%1,%2) %0 = (((0xFFFF0000 >>> (16*_:(!%1))) & %0) | (%2 << (16*_:(!%1))))
- #define d8b%0<%1,%2,%3,%4> new %0 = (%4 << 24) | (%3 << 16) | (%2 << 8) | (%1)
- #define a8b(%1,%2,%3,%4) (%4 << 24) | (%3 << 16) | (%2 << 8) | (%1)
- #define g8b(%0,%1) ((%0 >>> (%1 << 3)) & 0xFF)
- #define s8b(%0,%1,%2) %0 = (%0 & ~(0xFF << %1 * 8)) | (%2 << %1 * 8)
- #define d4b%0<%1,%2,%3,%4,%5,%6,%7,%8> new %0 = (%8 << 28) | (%7 << 24) | (%6 << 20) | (%5 << 16) | (%4 << 12) | (%3 << 8) | (%2 << 4) | (%1)
- #define a4b(%1,%2,%3,%4,%5,%6,%7,%8) (%8 << 28) | (%7 << 24) | (%6 << 20) | (%5 << 16) | (%4 << 12) | (%3 << 8) | (%2 << 4) | (%1)
- #define g4b(%0,%1) ((%0 >>> (%1 << 2)) & 0xF)
- #define s4b(%0,%1,%2) %0 = (%0 & ~(0xF << %1 * 4)) | (%2 << %1 * 4)
- main() {
- { // 16 bits
- print("-------------------");
- print("----- 16 bits -----");
- print("-------------------");
- d16b int<52410, 124>;
- printf("int = %032b", int);
- printf("int = %08x", int);
- printf("int = %d", int);
- print(" ");
- printf("int{0} = %d", g16b(int, 0));
- printf("int{1} = %d", g16b(int, 1));
- s16b(int, 0, 1742);
- print(" ");
- printf("int = 0b%032b", int);
- printf("int = 0x%08x", int);
- printf("int = %d", int);
- printf("int = 0b%032b", a16b(1742, 124));
- printf("int = 0x%08x", a16b(1742, 124));
- printf("int = %d", a16b(1742, 124));
- print(" ");
- printf("int{0} = %d", g16b(int, 0));
- printf("int{1} = %d", g16b(int, 1));
- }
- { // 8 bits
- print("-------------------");
- print("----- 08 bits -----");
- print("-------------------");
- d8b int<152, 255, 5, 42>;
- printf("int = 0b%032b", int);
- printf("int = 0x%08x", int);
- printf("int = %d", int);
- print(" ");
- printf("int{0} = %d", g8b(int, 0));
- printf("int{1} = %d", g8b(int, 1));
- printf("int{2} = %d", g8b(int, 2));
- printf("int{3} = %d", g8b(int, 3));
- s8b(int, 2, 233);
- print(" ");
- printf("int = 0b%032b", int);
- printf("int = 0x%08x", int);
- printf("int = %d", int);
- printf("int = 0b%032b", a8b(152, 255, 233, 42));
- printf("int = 0x%08x", a8b(152, 255, 233, 42));
- printf("int = %d", a8b(152, 255, 233, 42));
- print(" ");
- printf("int{0} = %d", g8b(int, 0));
- printf("int{1} = %d", g8b(int, 1));
- printf("int{2} = %d", g8b(int, 2));
- printf("int{3} = %d", g8b(int, 3));
- }
- { // 4 bits
- print("-------------------");
- print("----- 04 bits -----");
- print("-------------------");
- d4b int<15, 14, 13, 12, 2, 5, 3, 4>;
- printf("int = 0b%032b", int);
- printf("int = 0x%08x", int);
- printf("int = %d", int);
- print(" ");
- printf("int{0} = %d", g4b(int, 0));
- printf("int{1} = %d", g4b(int, 1));
- printf("int{2} = %d", g4b(int, 2));
- printf("int{3} = %d", g4b(int, 3));
- printf("int{3} = %d", g4b(int, 4));
- printf("int{3} = %d", g4b(int, 5));
- printf("int{3} = %d", g4b(int, 6));
- printf("int{3} = %d", g4b(int, 7));
- s8b(int, 6, 9);
- print(" ");
- printf("int = 0b%032b", int);
- printf("int = 0x%08x", int);
- printf("int = %d", int);
- printf("int = 0b%032b", a4b(15, 14, 13, 12, 2, 5, 9, 4));
- printf("int = 0x%08x", a4b(15, 14, 13, 12, 2, 5, 9, 4));
- printf("int = %d", a4b(15, 14, 13, 12, 2, 5, 9, 4));
- print(" ");
- printf("int{0} = %d", g4b(int, 0));
- printf("int{1} = %d", g4b(int, 1));
- printf("int{2} = %d", g4b(int, 2));
- printf("int{3} = %d", g4b(int, 3));
- printf("int{3} = %d", g4b(int, 4));
- printf("int{3} = %d", g4b(int, 5));
- printf("int{3} = %d", g4b(int, 6));
- printf("int{3} = %d", g4b(int, 7));
- }
- }
Advertisement