(알고리즘) 특정비트 바꾸기(비트 쉬프트)

참고하기: http://devanix.tistory.com/216
Java 비트셋: http://www.dotnetperls.com/bitset-java

[ 비트 반전 ]
▶ 특정 비트 반전 : 1과 ^연산. ( ^연산은 두 피연산자가 같으면 0, 다르면 1로 설정)
▷ 5번 비트 반전 >
  
1111_0101
XOR(^)
0010_0000
  
1101_0101
위의 연산 코드화 : a ^= 0x1<<5
   
▷ 5,3,2번 비트 반전 >
  
1111_0101
XOR(^)
0010_1100
  
1101_1001
위의 연산 코드화 : a ^= (0x1<<5)+(0x3<<2);


*****************주의 사항******************



1번과 3번 비트를 켜기 위해
int ans=0;
for(int i=1;i<=3;i++)
ans+=(1<<i);

이렇게 했는데 이러면안된다 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
OR비트 연산이 덧셈이아니다.....

ans|=(1<<i);이렇게 해야 한다...............................

댓글

이 블로그의 인기 게시물

(ElasticSearch) 결과에서 순서 정렬

(네트워크)폴링방식 vs 롱 폴링방식

(18장) WebSocekt과 STOMP를 사용하여 메시징하기