1의 보수(~num)는 이진수 0과 1을 반전시켜서 구할 수 있다.
num = 1010 이면 ~num = 0101
2의 보수(-num)는 1의 보수에 1을 더하면 구할 수 있다.
~num + 1 = -num = 0110
원래수와 2의 보수를 &연산하면 원래수의 마지막 1인 비트를 구할 수 있다.
num & -num = 0010
0010의 1은 원래수 1010의 마지막1인 비트이다
* Fenwick트리 구현할 때 활용해 보시라~
num = 1010 이면 ~num = 0101
2의 보수(-num)는 1의 보수에 1을 더하면 구할 수 있다.
~num + 1 = -num = 0110
원래수와 2의 보수를 &연산하면 원래수의 마지막 1인 비트를 구할 수 있다.
num & -num = 0010
0010의 1은 원래수 1010의 마지막1인 비트이다
* Fenwick트리 구현할 때 활용해 보시라~
'Java & JSP' 카테고리의 다른 글
ajax 로 한글 값 전송시 깨짐 처리 (0) | 2020.04.04 |
---|---|
배열복사, 함수내 변경 총정리 (0) | 2019.08.19 |
ArrayList에서 특정값 remove (0) | 2016.05.21 |
Arrays.copyOf , Arrays.copyOfRange 배열 복사 (0) | 2016.03.15 |
2차원 배열 가지고 놀기 (0) | 2015.03.06 |
댓글