티스토리 뷰
bit란? 2진수 하나의 값을 저장할 수 있는 최소의 메모리 공간이다.
bit의 갯수는 2의 n제곱개만큼 있다.
예를들면 3bit는 000,001,010,100,011,101,110,111
이렇게 2의 3제곱, 8개가 있다.
byte란? ASCII문자 하나를 저장 할 수 있는 최소의 메모리 공간이다.
1byte = 8bit로 bit가 8개가 모여 1byte가 된다.
bit 와 byte가 무엇인지 알아보았으니 비트 연산자에 대해 알아보겠다.
비트연산자의 종류에는 이 정도가 있다.
1. 비트단위 and 연산
이것은 a,b를 입력받아 and 연산을 해주는 프로그램이다.
입력을 6 , 4로 한다면
6 : 0000 0110
3 : 0000 0011
6&3 0000 0010 이므로 값은 2가 된다.
2. 비트단위 or 연산
a,b를 입력받아서 or 연산을 해준다.
입력을 위와 같이 6 , 3으로 해준다면
6 : 0000 0110
3 : 0000 0011
6 | 3 을 하면 0000 0111 이 되므로 값은 7이 된다.
3. 비트단위 xor 연산
a,b를 입력받아서 xor 연산을 한다.
xor 연산이란 두 비트가 다를 때만 1이고 다른경우는 0이다.
입력을 6 , 3이라고 하면
6 : 0000 0110
3 : 0000 0011
6^3을 하면 0000 0101 이므로 값은 5이다.
4. 비트단위 not 연산
a,b를 입력받아서 not연산을 한다.
not연산은 0을 1로, 1을 0으로 바꿔준다.
입력을 64라고 하면
64 : 0100 0000
~64 를 하면 1011 1111 이므로 값은 191이 된다.
unsigned char을 쓴 이유는 unsigned char은 부호가 없기
때문이다.
비트의 not 연산을 하는 경우 부호비트 때문에 음수가
나올 수 있기 때문에 그것을 방지하기 위함이다.
5. shift 연산자 <<
shift 연산자 <<는 비트를 이동하는 연산자이다.
5 , 3 을 입력하면 2진수 5를 왼쪽 방향으로 3칸 이동하라는 뜻
5 : 0000 0101
5<<3을 하면 0010 1000 32+8 =40, 값은 40이 된다.
6. shift 연산자 >>
shift 연산자 >>도 비트를 이동하는 것 이다.
위 프로그램에 48 , 2을 입력하묜 2진수 48을 왼쪽으로 2칸
이동하는 것 이다.
48 : 0011 0000
48>>2를 하면 0000 1100 이 되어 8+4=12, 값은 12가 된다.
2진수를 각각 10진수,16진수,8진수로 표현한 경우이다.
이건 그냥 참고용 이다.
'Programming > C' 카테고리의 다른 글
연결 리스트(linked list) - 단순 연결 리스트 (0) | 2018.03.10 |
---|---|
연결 리스트(linked list) 개념 (0) | 2018.03.10 |