티스토리 뷰

Programming/C

비트와 비트연산자

xxvd 2017. 12. 17. 18:54

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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함