Part5 연산자란 무엇인가?
5.1 변수와 변수의 시작 주소
변수
- 데이터를 저장하는 임시 저장 공간, 메모리 공간
변수의 시작 주소
- 메모리 공간의 위치
- &변수 형태로 메모리 주소를 알 수 있음
5.2 연산자의 종류
연산자의 종류가 워낙 많아 따로 정리는 하지 않음.
연산에서 알아둘 것은 CPU는 연산만 하고 그 결과 값은 메모리에 저장하는 것임.
5.3 비트 연산자
비트와 바이트
- 컴퓨터는 모든 정보를 1과 0 즉, 이진(Binary) 값으로 저장하고 처리
그 이유는 현대 컴퓨터는 전자식 컴퓨터로 데이터를 전기 혹은 전자 신호를 이용하여 저장하고 관리하는데 전류가 흐르는 상태를 1, 전류가 흐르지 않는 상태를 0으로 표현할 수 있기 때문
- 컴퓨터의 기억 장치는 모든 신호를 2진수로 고쳐서 기억, 2진수에서 0, 1과 같이 신호를 나타내는 최소 단위를 비트(Bit)라고 함.
- 8비트가 모이면 1바이트가 됨.
2진수, 10진수, 16진수, 8진수
- 2진수(Binary): 0~1까지 숫자 사용
- 10진수(Decimal): 0~9까지
- 16진수(Hexadecimal): 0~9까지 이후 a,b,c,d,e,f 문자를 사용, 0x를 맨 앞에 붙여 구분
- 8진수(Octal): 0~7까지, 0을 맨 앞에 붙여 구분
- 다양한 진수 표현을 사용하는 이유는 컴퓨팅 세계에서는 2진수 표현이 길이가 매우 길어져서 16진수, 8진수로 가독성을 높일 수 있음.
비트 연산자
- 데이터를 비트 단위로 처리하는 연산자, 하드웨어와 밀접하게 관련된 처리를 쉽게 해주고 메모리 공간을 줄여서 성능을 높여줌
- AND 연산: &, ex)
a & b
- OR 연산: |, ex)
a | b
- XOR 연산: ^, ex)
a ^ b
- NOT 연산: ~, ex)
~a
- 왼쪽으로 이동: <<, ex) 왼쪽으로 세 칸 이동
a << 3
- 오른쪽으로 이동 >>, ex) 오른쪽으로 한 칸 이동
a >> 1
Reference
강의: 박정민, 『C 프로그래밍』, KOCW 한국산업기술대학교, 5강
교재: 박정민, 『열혈강의 C 언어 본색 명강의가 일으키는 C 언어 기적』, 프리렉 (2011), p91-128.