Open ermaker opened 8 years ago
입력: N ( >= 0, 정수) 출력: M ( >= 0, 정수)
N을 2진수로 표현했을때 나타나는 맨 오른쪽 1을 0으로 바꾸었을때의 값을 M이라고 하자. M을 출력하시오.
예: N: 10 -> 2진수로 표현하면 1010이고, 1010에서 맨 오른쪽 1을 0으로 바꾸면 1000이므로 M은 8이다. N: 8 -> 2진수로 표현하면 1000이고, 1000에서 맨 오른쪽 1을 0으로 바꾸면 0000이므로 M은 0이다.
int f(int v) { return v & (v - 1); }
입력: N ( >= 0, 정수) 출력: M ( >= 0, 정수)
N을 2진수로 표현했을때 나타나는 맨 오른쪽 1을 0으로 바꾸었을때의 값을 M이라고 하자. M을 출력하시오.
예: N: 10 -> 2진수로 표현하면 1010이고, 1010에서 맨 오른쪽 1을 0으로 바꾸면 1000이므로 M은 8이다. N: 8 -> 2진수로 표현하면 1000이고, 1000에서 맨 오른쪽 1을 0으로 바꾸면 0000이므로 M은 0이다.