ReverseBits
Published at 2021-11-21
class Solution:
def reverseBits(self, n: int) -> int:
ans = 0
for i in range(32):
ans = (ans << 1) + (n & 1)
n >>= 1
return ans
# 이진수숫자를 ABCD라고 해보면
# 마지막수부터 검사해서 그게 1이면 1을넣고 얘를 한칸 앞으로 보낼거임
# 그렇게 계속 반복해서 D가 A위치에 갈때까지!
# ABCD -> 0001이랑 &연산하면 D가 1이라면 0001일거임
# ans는 << 했응까 그 마지막에 &연산한걸 더해줌(쉬프트했으면 어차피 끝은 0일거임)
# 원래의 이진수인 n은 오른쪽쉬프트하고 다시 돌림
# 이거 반복ㄱㄱ
# 그니까 이건 슬라이드퍼즐같은거임 class Solution {
public:
uint32_t reverseBits(uint32_t n) {
uint32_t result= 0;
for(int i=0; i<32; i++)
result = (result<<1) + (n>>i &1);
return result;
}
};
// 파이썬으로도 품