2의 보수를 사용하는 기계에서, 정수 i 의 맨 아래쪽 1 비트(1로 세트된 비트 중 LSB에 제일 가까운 비트)를 0으로 만들려면 C 수식으로 i & (i-1) 를 쓴다. 부호없는 정수로 생각하면, 1을 빼는 연산이 항상 맨 아래 비트를 0으로 만들고, 그보다 더 LSB쪽에 있는 비트는 1로 만든다는 것을 쉽게 알 수 있다. 이 방법을 사용한 예는 Ken...
부호 없는 32비트 정수에서 1로 세트된 비트의 수를 세어서 돌려준다. 예컨대, 15를 받으면, 4개의 비트가 세트되어 있으니 4를 돌려준다. 누가 갑자기 와서 이 함수를 당장 만들어내라고 하면 제일 먼저 생각해낼 만한 것은 LSB가 1이면 1을 더하고 오른쪽으로 쉬프트를 하는 루프를 떠올릴 것이다. 다른 방법으로는 1바이트 안의 비트 수를 적어 놓은 테이...
(스크린샷만 보고 '아, 저거!!' 하시는 분은 제가 용자님으로 추대하겠습니다.)사람들은 종종 다른 사람들이 자신을 보았을 때어떻게 보여질지 생각합니다.잘 생긴 녀석으로 보일까, 쿨~ 해 보일까? 아니면 예뻐보일까, 좀 더 섹시해 보일까...저 역시도, 다른 사람들이 저를 어떻게 보는지 무척 궁금했었습니다.그런데 오늘은 그 답을 아마도 찾은 것 같습니다.이...
부호없는 32비트 정수를 받아서 그 비트 패턴을 뒤집어 출력한다. LSB부터 MSB로 각 비트를 0부터 31까지 번호를 붙이면, 0번 비트와 31번 비트를 서로 바꾸고, 1번 비트와 30번 비트를 서로 바꾸고, ..., 15번 비트와 16번 비트를 바꾸어 돌려준다. 실제 구현은, 우선 bswap 을 이용해서 바이트 단위의 순서를 뒤집어 놓은 다음에 각 바이...
(시리니넷 서버에 설치된 XE : http://sirini.net/xe/blog)마침 학교도 축제에 돌입했고,딱히 쉬는 날조차 공부할 만한 범생군은 아니고여차저차 해서 오늘 시간이 나는 김에 XE 를 붙잡고서 이리 저리 살펴보았습니다.설치는 svn co 를 통해서 서버에 바로 했고 여차 저차 매뉴얼을 보면서어떻게 블로그 까지는 형태를 만들어 보았습니다.그러...