[정보처리기사] 파이썬 range ( 초기값, 최종값, 증가값) 의 이해도,
파이썬 range ( 초기값, 최종값, 증가값) 의 이해도,
양수 일때,
1.
range ( 초기값, 최종값, 증가값) 의 이해도
0 , 11 ,2 이라면
최종값 - 1 해서
0 , 10 ,2
출력값
0 2 4 6 8 10
음수 일때,
1.
range ( 초기값, 최종값, 증가값) 의 이해도
10 ,-1, 2 이라면
최종값이 음수일때 -1 에서 -> +1로 변경되서
10 , 0 ,-2 로 변경
출력값
10 8 6 4 2 0
만일, 이런 계산문이 있다.
a = 100 # i 값에 대해 -1부터 2까지 반복합니다. for i in range(-1, 3): # 각각의 i에 대해 a에 오른쪽 시프트 연산 (>>)을 적용합니다. result = a >> i print ( result ) ; |
a = 100
# i 값에 대해 -1부터 2까지 반복합니다.
for i in range(-1, 3):
# 각각의 i에 대해 a에 오른쪽 시프트 연산 (>>)을 적용합니다.
result = a >> i
# 100의 이진 표현은 0b1100100입니다. 정수를 이진수로 변환합니다.
binary_a = bin(a)[2:] # "0b" 접두어 제거
# 결과 값을 이진수로 변환합니다.
binary_result = bin(result)[2:] # "0b" 접두어 제거
# 각 단계에서 현재 i 값과 계산 결과를 출력합니다.
print(f"i={i}, a={a}({binary_a}), result={result}({binary_result})")
음수 양수 계산방법,
i=-1, a=100(1100100), result=200(11001000)
i=0, a=100(1100100), result=100(1100100)
i=1, a=100(1100100), result=50(110010)
i=2, a=100(1100100), result=25(11001)
a = 100
# i 값에 대해 -1부터 2까지 반복합니다.
for i in range(-1, 3):
# 각각의 i에 대해 a에 오른쪽 시프트 연산 (>>)을 적용합니다.
result = a >> i
에서
만일 range(-1 이다.
기존의 a = 100 의 값을 2진수로 변경한다.
i=-1이므로 뒤에 오른쪽 0을 하나 더 붙인후 10진수로 변경해서 값을 출력한다.
i= 0이므로 뒤에 값을 안붙이고 그대로 출력한다.
i= 1 이므로 (a=100의 값을 2진수로 변경한값)에서 끝에 1개 자리수를 삭제한다
파이썬는 4바이트 , 4바이트와 32비트의 관계는 무엇인가?
1바이트는 8비트이다.
1바이트 = 00000000 비트이다.
4바이트는 32비트이다.
4바이트는 00000000, 00000000 , 00000000 , 00000000 이다.
정리, 파이썬 오른쪽 쉬프트 일때,
정리,
a = 100 # i 값에 대해 -1부터 2까지 반복합니다. for i in range(-1, 3): # 각각의 i에 대해 a에 오른쪽 시프트 연산 (>>)을 적용합니다. result = a >> i |
오른쪽 시프트 연산 (>>)
오른쪽>>시프트일때 ,
range ( 초기값, 최종값, 증가값)
(최종값)-1 을 하고
오른쪽>>시프트일때 ,
오른쪽으로 밀려서 끝에 자리수가 삭제된다로 이해
i= -1이면, 반대로 2진수 자릿수 끝에 0을 추가한다.
i=-1, a=100(1100100), result=200(11001000)
i= 0이면, 2진수 그대로 출력한다.
i= 1이면, 반대로 2진수 자릿수 끝에 1숫자를 1삭제한다.
i= 2이면, 반대로 2진수 자릿수 끝에 2숫자를 2삭제한다.
i=-1, a=100(1100100), result=200(11001000)
i=0, a=100(1100100), result=100(1100100)
i=1, a=100(1100100), result=50(110010)
i=2, a=100(1100100), result=25(11001)
파이썬 왼쪽 쉬프트 일때,
왼쪽<<시프트일때 ,
왼쪽으로 밀려서 끝에 자리수가 밀려서 추가된다.
range ( 초기값, 최종값, 증가값)
(최종값)-1 을 하고
i= -1이면, 반대로 2진수 자릿수 끝에 삭제된다.
i=-1, a=100(1100100), result=50(110010)
i= 0이면, 2진수 그대로 출력된다.
i= 1이면, 반대로 2진수 자릿수 끝에 1추가된다.
i=1, a=100(1100100), result=200(11001000)
i= 2이면, 반대로 2진수 자릿수 끝에 2추가된다.
i=2, a=100(1100100), result=400(110010000)
i=-1, a=100(1100100), result=50(110010)
i=0, a=100(1100100), result=100(1100100)
i=1, a=100(1100100), result=200(11001000)
i=2, a=100(1100100), result=400(110010000)
최종 정리, 파이썬 오른쪽 시프트 연산 (>>), 왼쪽<<시프트일때 ,
최종 정리,
문제,
a = 100 # i 값에 대해 -1부터 2까지 반복합니다. for i in range(-1, 3): # 각각의 i에 대해 a에 오른쪽 시프트 연산 (>>)을 적용합니다. result = a >> i |
오른쪽 시프트 연산 (>>)
오른쪽>>시프트일때 ,
range ( 초기값, 최종값, 증가값)
(최종값)-1 을 하고
오른쪽>>시프트일때 ,
오른쪽으로 밀려서 끝에 자리수가 삭제된다로 이해
i= -1이면, 반대로 2진수 자릿수 끝에 0을 추가한다.
i=-1, a=100(1100100), result=200(11001000)
i= 0이면, 2진수 그대로 출력한다.
i= 1이면, 반대로 2진수 자릿수 끝에 1숫자를 1삭제한다.
i= 2이면, 반대로 2진수 자릿수 끝에 2숫자를 2삭제한다.
i=-1, a=100(1100100), result=200(11001000)
i=0, a=100(1100100), result=100(1100100)
i=1, a=100(1100100), result=50(110010)
i=2, a=100(1100100), result=25(11001)
※오른쪽으로 한칸이 밀려서 끝자리가 삭제가 되서 2진수를 값을 표시한다.
왼쪽 정리,
a = 100 # i 값에 대해 -1부터 2까지 반복합니다. for i in range(-1, 3): # 각각의 i에 대해 a에 왼쪽 시프트 연산 (<<)을 적용합니다. result = a << i |
왼쪽<<시프트일때 ,
왼쪽으로 밀려서 끝에 자리수가 밀려서 추가된다.
range ( 초기값, 최종값, 증가값)
(최종값)-1 을 하고
i= -1이면, 반대로 2진수 자릿수 끝에 삭제된다.
i=-1, a=100(1100100), result=50(110010)
i= 0이면, 2진수 그대로 출력된다.
i= 1이면, 반대로 2진수 자릿수 끝에 1추가된다.
i=1, a=100(1100100), result=200(11001000)
i= 2이면, 반대로 2진수 자릿수 끝에 2추가된다.
i=2, a=100(1100100), result=400(110010000)
i=-1, a=100(1100100), result=50(110010)
i=0, a=100(1100100), result=100(1100100)
i=1, a=100(1100100), result=200(11001000)
i=2, a=100(1100100), result=400(110010000)
※왼쪽으로 한칸이 밀려서 끝자리가 추가 되서 2진수를 값을 표시한다.
'컴퓨터공부 > Python' 카테고리의 다른 글
[정보처리기사] 파이썬 슬라이스, pop (), append() ,reverse, extend(): ,indexing (0) | 2023.06.26 |
---|---|
[정보처리기사] 파이썬 a [1][-3], print() , print(item, end=',') (0) | 2023.06.23 |
댓글