익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT 위키
검색
C 언어 비트 연산
편집하기
IT 위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
C 언어 비트 연산(Bitwise Operations in C, 비트演算)은 정수형 데이터를 이진수 단위로 직접 조작할 수 있도록 해주는 연산으로, 하드웨어 제어, 암호화, 최적화된 수치 계산 등에서 자주 사용된다. ==개요== 비트 연산자는 피연산자의 각 비트를 기준으로 연산을 수행하며, 정수형 변수에만 적용된다. 비트 연산은 빠른 속도와 효율적인 메모리 사용을 가능하게 하여 시스템 프로그래밍에서 널리 사용된다. ==주요 비트 연산자== *& (AND): 두 비트가 모두 1이면 1 *| (OR): 두 비트 중 하나라도 1이면 1 *^ (XOR): 두 비트가 다르면 1 *~ (NOT): 비트를 반전 (1은 0, 0은 1) *<< (왼쪽 시프트): 비트를 왼쪽으로 이동 (2ⁿ배) *>> (오른쪽 시프트): 비트를 오른쪽으로 이동 (2ⁿ 나눗셈) ==예제== <syntaxhighlight lang="c"> int a = 5; // 00000101 int b = 3; // 00000011 int and = a & b; // 00000001 → 1 int or = a | b; // 00000111 → 7 int xor = a ^ b; // 00000110 → 6 int not = ~a; // 11111010 → -6 (2의 보수 표현 기준) int shl = a << 1; // 00001010 → 10 int shr = a >> 1; // 00000010 → 2 </syntaxhighlight> ==시프트 연산 설명== *x << n: x를 왼쪽으로 n비트 이동 → x * (2ⁿ) *x >> n: x를 오른쪽으로 n비트 이동 → x / (2ⁿ) *시프트 연산은 정수 곱셈이나 나눗셈보다 빠르기 때문에 최적화에 사용됨 *음수를 시프트할 경우, 구현체에 따라 부호 비트가 유지될 수 있음 ==활용 예== *특정 비트 검사 및 설정 *플래그 관리 및 상태 저장 *이진 마스크(Bitmask) 사용 *하드웨어 레지스터 조작 <syntaxhighlight lang="c"> // 비트 마스크 예 #define FLAG_READ 0x01 // 00000001 #define FLAG_WRITE 0x02 // 00000010 unsigned char flags = 0; flags |= FLAG_READ; // READ 플래그 설정 if (flags & FLAG_READ) {...} // READ 플래그 확인 flags &= ~FLAG_READ; // READ 플래그 해제 </syntaxhighlight> ==주의 사항== *부호 있는 정수의 시프트 연산은 구현체(컴파일러)마다 다를 수 있음 *비트를 직접 다룰 경우 연산 순서와 우선순위를 명확히 이해해야 함 *실수형 데이터에는 비트 연산을 사용할 수 없음 ==관련 키워드== *비트 마스크 *시프트 연산 *이진수 *플래그 연산 *하드웨어 제어 ==같이 보기== *[[C 언어 연산자]] *[[C 언어 자료형]] *[[C 언어 변수]] *[[C 언어 상수]] *[[C 언어 조건문]] ==참고 문헌== *Brian W. Kernighan, Dennis M. Ritchie, The C Programming Language, Prentice Hall, 1988. *한동윤, 명품 C 언어 프로젝트, 생능출판사, 2020. ==각주== [[분류:C 언어]] [[분류:프로그래밍]]
요약:
IT 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT 위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록