File tree 3 files changed +38
-8
lines changed
3 files changed +38
-8
lines changed Original file line number Diff line number Diff line change @@ -26,7 +26,21 @@ const hammingWeight = (n) => {
26
26
}
27
27
28
28
29
+ hammingWeight ( 00000000000000000000000000000011 )
30
+ // 00000000000000000000000000000011
31
+ // 11 & 10 = 10
32
+ // +1 = 1
33
+
34
+ // 00000000000000000000000000000010
35
+ // 10 & 01 = 0
36
+ // +1 = 2
37
+
38
+ // 00000000000000000000000000000000
39
+ // -
40
+
41
+
42
+ // hammingWeight(00000000000000000000000000001011)
29
43
// hammingWeight(00000000000000000000000000001011)
30
44
// hammingWeight(11111111111111111111111111111101)
31
- hammingWeight ( 11111111111111111111111111111101 )
45
+ // hammingWeight(11111111111111111111111111111101)
32
46
// hammingWeight(parseInt("11111111111111111111111111111101", 2));
Original file line number Diff line number Diff line change 4
4
* @return {number }
5
5
*/
6
6
const getSum = ( a , b ) => {
7
- console . log ( `a:${ a } , b:${ b } ` )
8
- console . log ( Math . log ( 1 ) )
9
- console . log ( Math . log ( 2 ) )
10
- a += b ;
7
+ // TODO: OK TOTALLY DONT GET IT ...
8
+ while ( b != 0 ) {
9
+ console . log ( `--> a:${ a } , b:${ b } ` )
10
+ console . log ( `a & b :${ a & b } ` )
11
+
12
+ let tmp = ( a & b ) << 1 ;
13
+ console . log ( `(a & b << 1) :${ a & b << 1 } ` )
14
+ a = a ^ b ;
15
+ console . log ( `(a ^ b): ${ a } ` )
16
+ b = tmp ;
17
+ console . log ( `b:${ b } ` )
18
+ }
19
+ console . log ( "a" )
20
+ console . log ( a )
21
+
11
22
return a ;
12
23
}
13
24
25
+
14
26
getSum ( 1 , 2 )
27
+ getSum ( 121 , 239 )
Original file line number Diff line number Diff line change 4
4
* @return {number }
5
5
*/
6
6
const getSum = ( a , b ) => {
7
- // TODO: OK TOTALLY DONT GET IT ...
8
7
while ( b != 0 ) {
9
8
console . log ( `--> a:${ a } , b:${ b } ` )
10
9
console . log ( `a & b :${ a & b } ` )
11
10
12
- let tmp = ( a & b ) << 1 ;
11
+ let tmp = ( a & b ) << 1 ; // bit shift
13
12
console . log ( `(a & b << 1) :${ a & b << 1 } ` )
13
+
14
14
a = a ^ b ;
15
15
console . log ( `(a ^ b): ${ a } ` )
16
+
16
17
b = tmp ;
17
18
console . log ( `b:${ b } ` )
18
19
}
20
+
19
21
console . log ( "a" )
20
22
console . log ( a )
21
23
22
24
return a ;
23
25
}
24
26
27
+
25
28
// getSum(1, 2)
26
- getSum ( 121 , 239 )
29
+ // getSum(121, 239)
You can’t perform that action at this time.
0 commit comments