-
[Kernighan - C] #2 - 10 지정 연산자와 수식전기전자공학/프로젝트 2017. 6. 25. 22:46
2.10 지정연산자와 수식
The C Programming Language - Kernighan
i = i + 2 수식을 i += 2로 바꿀수 있는데,
연산자 += 를 '지정 연산자'라고 부른다.
● 1비트 갯수 세기 함수
12345678910/* bitcount: count 1 bits in x */int bitcount(unsigned x) {int b;for (b = 0; x != 0; x >> 1)if (x & 01)b++;return b;}cs ★인수 x를 unsigned로 선언함으로써 우측 이동시 빈 비트가 기계에 관계없이 sign비트가 아닌 0으로 채워질 수 있다.
[예제 2-9]
2의 보수계에서 x & (x-1)은 x의 최우측 1비트를 지운다. 그 이유를 설명하라. 이 결과를 가지고 bitcount 프로그램을 작성하라
x = X X X X X X 일 때,
x - 1 = X X X X X 0 이다.
x와 y가 AND 연산을 하면 맨 오른쪽 비트는 0이 되므로 지운다고 할 수 있다.
코드:
123456789/* bitcount: count 1 bits in x through x & (x-1) */int bitcount(unsigned x) {int b;for (b = 0; x != 0; x >> 1)if (x & (x-1))b++;return b;}cs '전기전자공학 > 프로젝트' 카테고리의 다른 글
[Kernighan - C] #4-1,2 함수의 기초 (0) 2017.06.26 [Kernighan - C] #2-11 조건문 (0) 2017.06.25 [Kernighan - C] #2-9 비트 연산자 (0) 2017.06.25 [Kernighan - C] #2-8 증가 연산자와 감소 연산자 (0) 2017.06.25 [Kernighan - C] #1-10 외부변수 (0) 2017.06.24