비트연산 중에서 모르는 게 있어요.
리나
2023.06.20
질문 제목 : 질문 내용 : unsigned bits(unsigned x, int k, int j)
{
return (x k) & ~(~0 j);
}기수 교환 정렬에서 위의 함수를 사용하는데요,비트 번호 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
x = 0 1 0 0 1 1 1 0 0 0 1 0 1 1 1 0k = 7, j = 4 라면 1100, 즉 12라는 값이 된다.(xk) & 까진 알겠는데 ~(~0 j)를 모르겠어요. ~0이 뭔가요 ;; 거기다가 다시 ~를 하니까 더 헷갈려서요.
답변 부탁드립니다.
-
소심한녀자 2023-06-20
두 분 모두 감사합니다. 덕분에 풀렸네요 ㅎㅎ 비트연산 별거 없다고 생각했었는데 저렇게도 쓰는 군요.
-
루다 2023-06-20
int형 4byte를 모두 1로 만드는것 아닐까요? 그래서 j만큼 shift left하고 그 값을 반전시켜서 앞에것과 엔드연산한다 인거 같아요
-
아리솔 2023-06-20
~는 not입니다.
비트를 전부 뒤집는거죠
1은 0으로 0은 1로요