'''
비트연산
논리연산자
& 논리곱
| 논리합
^ 배타논리 합
단항연산자
~ 논리부정
쉬프트 연산자
>> A >> B A를 오른쪽으로 B만큼 비트이동
<< A << B A를 왼쪽으로 B만큼 비트이동
비트가 넘어가면 잘리고, 빈 자리는 0으로 채워진다(음수는 빈 자리가 1로 채워진다)
ex)
1010을 왼쪽으로 1개 밀기-> 10<<1
10100 -> 2⁴+2²->16+4 =20
2의43210승
'''console결과
10<<1 #을 입력
20'''
r g b
8bit 8bit 8bit
0~255 0~255 0~255
#000 black
#f123 ->보색 : ~f123
해킹
ip ┌이것을 알아내야함
192.168.???.11 -본서버 (알 필요 x)
-------
ㄴ대한민국이면 똑같은
0~255 0~255 0~255 0~255
8bit 8bit 8bit 8bit
a*b=0
b=0
a*?=a
?=1
┌10으로 가정 00001010
192.168.10.11
A B C D
A,B,D에 0을 곱함
c에다가 bit로 1111...을 다 넣음
0 . 0 . 1111... . 0
A*0=0
B*0=0
C*1=00001010
D*0=0
내가아무리 앞의 8개를 알아도 뒤의 8개를 모르면 x
그래서 비트를 오른쪽으로 >> 8칸 밀어야함 ->쉬프트 연산자 >>, <<
C>>8 enter(C를 오른쪽으로 8칸 밀어라)
0 0 0 0 1 0 1 0 . 0 0 0 0 0 0 0 0
2의15 14 13 12 11 10 9 8 / 7 6 5 4 3 2 1 0
'''
#%% 실수의 오류
print(0.1 + 0.2)
print(0.1 + 0.2 == 0.3) # + 산술 먼저, == 관계 나중
print("%f" %0.3) # 소수점 자리 6번째짜리 까지 나옴 6자리까지만 정확, 7번째부터 부정확.
'''console결과
0.30000000000000004 # 32칸만들었는데 연산해보니 bit로 바뀌면서 넘어가서 오류 , 그래서 반올림
False
0.300000'''
#%% 실수의 오류 해결1_비교
import math
print(math.isclose(0.1+0.2, 0.3)) # //True
# math.isclose : 아무리 정확하지 않아도 비교를 할 때는 정확하게 나온다.
#%% 실수의 오류 해결2_결과값
from decimal import Decimal
print(float(Decimal('0.1')+Decimal('0.2'))) # //0.3
#연산을 해서 결과를 정확하게 얻고 싶으면 Decimal,
#두 값을 비교할 때 정확한 비교를 위해서라면 math.isclose()
'코리아 IT아카데미 > python 인터넷 강의' 카테고리의 다른 글
ddazua | 11강 삼항연산자의 응용과 if문 (0) | 2021.09.16 |
---|---|
ddazua | 10강 연산자4 - 삼항 연산자 (0) | 2021.09.16 |
아나콘다 스파이더 단축키 (0) | 2021.09.16 |
ddazua | 8강 연산자2 - 조건식과 비트연산 (0) | 2021.09.15 |
ddazua | 7강 연산자1 - 우선순위와 결합성 (0) | 2021.09.15 |