비트마스크(2)
-
2-4. 비트마스크
비트마스크 비트마스크를 이용해서 부분집합을 구할 수 있다는 점을 기억하고 가자. not 연산의 경우 자료형에 따라 결과가 달라진다. 또한, unsigned, signed에 따라서 보여지는 값이 달라진다. signed의 경우 가장 앞 자리 비트를 이용하여 음수/양수를 구별하기 때문이다. 정수의 집합을 나타낼 때 사용할 수 있다. 집합에는 같은수가 없기 때문이다. 570을 이진수로 나타내면 1000111010이 되는데, 이는 2^9+2^5+2^4+2^3+2^1로 나타낼 수 있다. 이를 통해서 주어진 수 570를 집합 {1, 3, 4, 5, 9}로 표현할 수 있다. 비트마스크를 사용하게되면 정수를 사용하는 것보다, 공간복잡도가 줄어들게 된다. 비트마스크의 연산 &를 사용하여 비트가 있는지 알 수 있다. |를 ..
2019.05.14 -
비트마스크를 배열로 관리하는 bitsToArrays.js
Javascript에서 비트마스크를 쓸 일이 있을까?=====임베디드 장비에서 서버를 돌렸기 때문에, 꽤 많은 기능들은 비트마스크로 관리됐다. 이벤트가 on/off됐다던가, 장비에 연결된 장치들과 연결이 끊어졌다던가, 이런 상태들을 한번에 관리하기엔 비트마스크만한 게 없었다. 뭣보다 워낙 옛날에 C로 코드를 작성하던 아저씨들이 만든 코드라, 비트마스크를 쓸 일이 상당히 많았다.여러개의 Boolean값을 사용하고 있다면, 비트마스크를 통해서 메모리 효율을 늘릴 수 있을 것이다. 비트마스크가 효율적이긴 한데...=====event_status라는 비트마스크에 n번째 비트가 설정되었는지 확인하려면, 다음과 같이 작성하면 된다. ```if ((event_status & (1
2019.01.09