본문 바로가기
코리아 IT아카데미/python 인터넷 강의

ddazua | 8강 연산자2 - 조건식과 비트연산

by Sharon kim 2021. 9. 15.

#%% (1) 관계 연산자
isTrue = 10 == 11 # False
isTrue = 10 != 11 # True
print(isTrue)


#%% (2) 논리 연산자
isTrue = 10 == 11 and 10 > 1

#    (10!=11) False and True(10은 1보다 크다) F and T -> False
isTrue = 10 == 11 or 10 > 1

#    (10!=11) False or True(10은 1보다 크다) F or T -> True
print(isTrue)


'''day08.txt
비트 연산 
1byte = 8bit 
전구 8개가 모이면 1byte다.
비트 : 0 또는 1
10진수 : 0 ~ 9
2진수 : 0, 1
        논리 연산자
        &   AND 두 비트가 모두 1이면 1
        |     OR 둘 중 하나라도 1이면 1
        ^   XOR 두 비트가 서로 다르면 1
        (이진수) 
10이라는 10진수 값을 2진수로 바꾸기

10 : 1010

11 : 1010 + 1 -> 1011

10&11 10|11 10^11
   1010
& 1011
           
   1010
'''console결과
10&11
10
'''
  1010
| 1011
           
   1011
'''console결과
10|11
11
'''
  1010
^ 1011
           
   0001
'''console결과
10^11
1
'''

        단항 연산자
        ~     NOT : 0을 1로 , 1을 0으로 바꿔준다.

#%% (3) 단항 연산자
isTrue = 10 ==11 #Flase
print(not isTrue)
#not False -> True

'''console결과
True
'''
  10 : 1010
  ~10 ->0101   -> 2²+2⁰ = 5
       2의3210승
  ~10 = 5
  but, 
  '''console결과
  ~10
  -11'''
                                                                            ~a = -a-1
  (증명식)   (~10 이 -11이 된 것을 증명)
  
    0      0      0      1      ->   4bit(전구가 4개)
  0or1  0or1  0or1  0or1
  1bit   1bit   1bit   1bit

  컴퓨터는 덧셈밖에 없다.

  ~1을 구하는 것 
  1     0001               1111 ->-1
   -1   1111 +        2의3210승 ->2³+2²+2¹+2⁰=15 
                                   ┌ 0이면 양수 : 15
  0   1 0000     부호비트 1111 == -1 ==15
  4bit이므로 1짤림          ㄴ1이면 음수 : -1
  
  10이라는 양수가 ~10이라는 걸
  만나서 부호비트가 0 ->1로 바뀜 
   
   1010       10
   0110 +   -10
                      
 1 0000        0

 0110 == -10
 0110 ==~1001
~1001 ->~9 == -10
   



   1011       11
   0101 +   -11
                      
 1 0000        0

 0101 == -11
 0101 ==~1010
~1010 -> ~10 == -11

        부호 비트
            최상위 비트를 부호비트라고 하며,
            양수는 0, 음수는 1로 표현한다.
        쉬프트 연산자
'''