속도 최적화 시에도 쓰이지만 그건 hack 일 뿐이고, 정석적인 용도로는 bit flag 운용 용도.
ㅅㅅㅅ(203.226)2016-01-19 21:40
성능딸딸이
흐린바다(1214qwer)2016-01-19 21:41
그러니까 bitmap이나 bit flags를 다루는 문제에 있어서 bit 단위의 자리 중 특정 자리의 값이 1인지 0인지 알아올 때 (bit test ==> & 1), 특정 자리를 1로 설정할 때 (| 1), 특정 자리를 0으로 설정할 때 (& ~1), 특정 자리를 뒤집을 때 (^ 1), 전체 자리를 뒤집을 때 (~) 같은 조작을 행할 때 사용.
ㅅㅅㅅ(203.226)2016-01-19 21:43
그렇다면 15*2 를 수행하는것보다 15<<1 하는게 성능적으로 더 낫다는건가요?
익명(114.199)2016-01-19 21:43
ㄴ컴파일러가 알아서 해줄걸?
츄럴(rhdnfka94)2016-01-19 21:44
정렬된주소 헤더부분 구할때
ㅏㅏ(124.56)2016-01-19 21:44
ㅇㅇ. 근데 그 정도는 컴파일러의 최적화기가 알아서 바꿔주니깐 굳이 신경 쓸 필요 없다. Hack이라 2의 보수법이 아닌 부호와 절대치 쓰는 곳에선 문제가 생김.
ㅅㅅㅅ(203.226)2016-01-19 21:45
음수일 때, 1 0000001 과 같은 8비트 부호와 절대치 수를 <<1 하변 양수가 되어버리겠지.
속도 최적화 시에도 쓰이지만 그건 hack 일 뿐이고, 정석적인 용도로는 bit flag 운용 용도.
성능딸딸이
그러니까 bitmap이나 bit flags를 다루는 문제에 있어서 bit 단위의 자리 중 특정 자리의 값이 1인지 0인지 알아올 때 (bit test ==> & 1), 특정 자리를 1로 설정할 때 (| 1), 특정 자리를 0으로 설정할 때 (& ~1), 특정 자리를 뒤집을 때 (^ 1), 전체 자리를 뒤집을 때 (~) 같은 조작을 행할 때 사용.
그렇다면 15*2 를 수행하는것보다 15<<1 하는게 성능적으로 더 낫다는건가요?
ㄴ컴파일러가 알아서 해줄걸?
정렬된주소 헤더부분 구할때
ㅇㅇ. 근데 그 정도는 컴파일러의 최적화기가 알아서 바꿔주니깐 굳이 신경 쓸 필요 없다. Hack이라 2의 보수법이 아닌 부호와 절대치 쓰는 곳에선 문제가 생김.
음수일 때, 1 0000001 과 같은 8비트 부호와 절대치 수를 <<1 하변 양수가 되어버리겠지.