본문 바로가기
프로그래밍 언어/C

[C언어] 비트 연산자

by 느링 2017. 6. 7.

비트 연산자

비트와 바이트

비트(Bit) : 2진수 값 하나(0 또는 1)를 저장할 수 있는 최소 메모리 공간

컴퓨터는 모든 정보를 0과 1로 표현

1비트 □ (0,1) 2개 2^1

2비트 □□(00,01,10,11) 4개 2^2

3비트 □□□ 2^3 = 8개

n비트 2^n개

 

1Byte = 8Bit

□□□□□□□□=1Byte = 256개

 

2진수, 10진수, 16진수, 8진수

2진수 : 0 ~ 1까지의 숫자를 사용(컴퓨팅 세계 표현번)

10진수 : 0 ~ 9까지의 숫자를 사용(일상적인 표현법)

16진수 : 0 ~ 9까지의 숫자를 사용하고, 9이후부터 a, b, c, d, e, f 문자 사용(컴퓨팅 세계 표현법) / 오른쪽을 기준을 4비트 단위로 묶음

8진수 : 0 ~ 7까지의 숫자를 사용 (컴퓨팅 세계 표현법) / 오른쪽을 기준을 3비트 단위로 묶음

 

 10 == 0xa == 012 (모두 같은 표현입니다.)

 

2진수를 10진수로 표현하는 방법

  □    □   □    □  □   □   □  □ = 1Byte

   0     0    0     0    1    0     1    1

 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0

2^3= 2x2x2 , 2^1 = 2, 2^0 = 1

    (2x2x2)+2+1 = 11

 

비트 연산자

데이터를 비트 단위로 처리하는 연산자

 

& 연산자 - 두개의 비트가 모두 1일 때 1을 반환

 

| 연산자 - 두 개의 비트 중의 하나가 1일 때 1을 반환

 

③ ^ 연산자 - 두 개의 비트가 서로 같지 않을 경우 1을 반환

 

④ ~연산자 - 보수 연산으로 비트를 반전 시킴

 

 

음수를 만들 때는 2의 보수를 취함

0000 0000  0000 0000  0000 0000  0001 0101 (21)

 

1111 1111  1111 1111  1111 1111  1110 1010 (1의보수)

0000 0000  0000 0000  0000 0000  0000 0001(1의더함)

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

1111 1111  1111 1111  1111 1111  1110 1011(-21)

--05 05 14:30 보수를 왜하는지//

 

비트 이동 연산자

<<연산자 (왼쪽 쉬프트 연산자)

비트를 왼쪽으로 이동시키는 연산자

>>연산자 (오른쪽 쉬프트 연산자)

비트를 오른쪽으로 이동시키는 연산자

 

 

반대로 음수일 때는 빈자리에 1을 넣어줍니다.

 

 

 

 

 

 

 

 

 

 

'프로그래밍 언어 > C' 카테고리의 다른 글

[C언어] 상수 (리터럴상수 / 심볼릭상수)  (0) 2017.06.12
[C언어] scanf( )함수  (0) 2017.06.07
[C언어] 변수, 연산자  (0) 2017.05.26
[C언어] C언어의 기본구조  (0) 2017.05.26
[C언어] C언어란  (0) 2017.05.25