bitmask로 할 수 있는 일은 많습니다. 하나만 예를 들자면, boolean 배열을 bitmask로 압축해서 공간이나 시간 (또는 둘 다) 성능을 끌어올리는게 가능하죠. (말하자면, N * 32 bytes 배열로 boolean값을 저장하는 방법에서 uint32 변수 한 개의 bit 위치로 표시하는 방법으로 갈아탈 때 공간적으로 이득을 보겠죠.) 다만 bitmask를 활용하기 위해서는 특정 비트 설정 / 비트 부분 옮겨서 비교하기 / 일치 부분 판정 등의 bit 단위 조작을 and or not 등의 형식으로 instruction 수준에서 지원해줘야 될 거고 그 중에는 shift 연산도 포함돼야겠죠. 코세님이 올리신 강의에서도 shift뿐만 아니라 전반적인 비트 연산이 자주 활용되는 편입니다.
첫댓글 쉬프트 연산자 딱한번 써봄 웹단 암호화 할때..
bitmask로 할 수 있는 일은 많습니다. 하나만 예를 들자면, boolean 배열을 bitmask로 압축해서 공간이나 시간 (또는 둘 다) 성능을 끌어올리는게 가능하죠. (말하자면, N * 32 bytes 배열로 boolean값을 저장하는 방법에서 uint32 변수 한 개의 bit 위치로 표시하는 방법으로 갈아탈 때 공간적으로 이득을 보겠죠.) 다만 bitmask를 활용하기 위해서는 특정 비트 설정 / 비트 부분 옮겨서 비교하기 / 일치 부분 판정 등의 bit 단위 조작을 and or not 등의 형식으로 instruction 수준에서 지원해줘야 될 거고 그 중에는 shift 연산도 포함돼야겠죠. 코세님이 올리신 강의에서도 shift뿐만 아니라 전반적인 비트 연산이 자주 활용되는 편입니다.
감사합니다 오늘도 배워갑니다^~^
bitmask 란 단어는 bitwise and 의 경우처럼 특별한 비트를 남기고 나머지를 0으로 떨궈 내는 용도에 특화된 용어예요.
좀 더 이경우에 적합한 용어는 bitwise operator 겠죠.
마이크로컨트롤러의 경우 GPIO를 제어할 때 핀 하나당 1비트가 할당되어 있습니다. 이러한 핀을 제어할 때 비트연산자가 유용하게 사용되죠