Repository navigation
Expand file tree
/
Copy pathultility.hpp
More file actions
85 lines (67 loc) · 1.58 KB
/
Copy pathultility.hpp
File metadata and controls
85 lines (67 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#ifndef ULTILITY
#define ULTILITY
#include <iostream>
#include <cstring>
#include <vector>
int get(int l, int r, int num) { //0-base
return (num >> l) & ((1 << (r - l + 1)) - 1);
}
int link(int a, int la, int b, int lb) {
return (((a << lb) | b) << (32 - la - lb)) >> (32 - la - lb);
}
int ulink(int a, int la, int b, int lb) {
return ((a << lb) | b);
}
int link(int a, int la, int b, int lb, int c, int lc) {
return (((((a << lb) | b ) << lc) | c) << (32 - la - lb - lc)) >> (32 - la - lb - lc);
}
int link(int a, int la, int b, int lb, int c, int lc, int d, int ld) {
return (((((((a << lb) | b) << lc) | c) << ld) | d) << (32 - la - lb - lc - ld)) >> (32 - la - lb - lc - ld);
}
/*
struct binaryString {
int val;
binaryString(int _val) {
val = _val;
}
binaryString(char* a) { //´Ó16½øÖÆ×ª»»
int len = strlen(a);
char* p = new char[len + 3];
p[0] = '0'; p[1] = 'x';
for (int i = 0; i < len; ++i) {
p[i + 2] = a[i];
}
p[len + 2] = '\0';
sscanf(p, "%x", &val);
}
binaryString(bool* str, int size) { //´Ó2½øÖÆ×ª»»
val = 0;
for (int i = 0; i < size; ++i) {
val *= 2;
val += str[i];
}
}
operator char* () const {
int cur = 0;
int len = log(val) + 1;
char* ans = new char[len] + 1;
for (int i = 0; i < 5; ++i) {
}
}
bool operator == (const binaryString& other) {
return val == other.val;
}
binaryString operator+ (const binaryString& other) {
return binaryString(val + other.val);
}
};
int convertBinary(bool* str, int size) {
int s = 0;
for (int i = 0; i < size; ++i) {
s *= 2;
s += str[i];
}
return s;
}
*/
#endif // !ULTILITY