-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbitwise.js
78 lines (67 loc) · 1.3 KB
/
bitwise.js
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
console.log((5).toString(2));
console.log((~5));
console.log('bitwise');
var x = 2;
console.log(x);
console.log(~(3));
var y = (1 << 1);
console.log(y);
console.log(y << 1);
console.log(2 << 3);
console.log(3 | -1);
console.log(3 & (1 << 0));
console.log(3 & (1 << 1));
console.log(3 & (1 << 2));
console.log(3 & (1 << 3));
console.log("-2 bits 4");
console.log(-2 & (1 << 0));
console.log(-2 & (1 << 1));
console.log(-2 & (1 << 2));
console.log(-2 & (1 << 3));
console.log("-3 bits x");
var s = -5;
//console.log((-3 >> 7) & (1));
console.log((s >> 3) & (1));
console.log((s >> 2) & (1));
console.log((s >> 1) & (1));
console.log((s >> 0) & (1));
console.log(~(-4));
//TWO's COMPLEMENT @ 3 bits
// 011 == 3
// 010 == 2
// 001 == 1
// 000 == 0
// 111 == -1
// 110 == -2
// 101 == -3
// 100 == -4
//TWO's COMPLEMENT @ 4 bits
// 0111 == 7
// 0000 == 0
// 1111 == -1
// 1110 == -2
// 1101 == -3
// 1100 == -4
// 1011 == -5
// 1010 == -6
// 1001 == -7
// 1000 == -8
//A function that returns the 2's comp. notation of a number in JS:
Number.prototype.twos = function(n) {
var ret = "";
while(n)
{
ret += ( (this >> --n) & (1) );
}
return ret;
};
function twos(x, y) {
var ret = "";
while(y)
{
ret += ( (x >> --y) & (1) );
}
return ret;
}
console.log(twos(7,4));
console.log((-16).twos(6));