#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));
}
}
Comments
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎