์ ์ 1๊ฐ๋ฅผ ์ ๋ ฅ๋ฐ์ 2๋ฐฐ ๊ณฑํด ์ถ๋ ฅํด๋ณด์.
a = int(input())
print(a<<1) # a*2^1
์ ์๋ฅผ 2๋ฐฐ๋ก ๊ณฑํ๊ฑฐ๋ ๋๋์ด ๊ณ์ฐํด ์ฃผ๋ ๋นํธ๋จ์์ํํธ์ฐ์ฐ์ <<, >>๋ฅผ ์ด์ฉํ ์ ์๋ค.
์ปดํจํฐ ๋ด๋ถ์๋ 2์ง์ ํํ๋ก ๊ฐ๋ค์ด ์ ์ฅ๋๊ธฐ ๋๋ฌธ์,
2์ง์ ํํ๋ก ์ ์ฅ๋์ด ์๋ ๊ฐ๋ค์ ์ผ์ชฝ(<<)์ด๋ ์ค๋ฅธ์ชฝ(>>)์ผ๋ก
์ง์ ํ ๋นํธ ์๋งํผ ๋ฐ์ด์ฃผ๋ฉด 2๋ฐฐ์ฉ ๋์ด๋๊ฑฐ๋ 1/2๋ก ์ค์ด๋๋๋ฐ,
์ผ์ชฝ ๋นํธ์ํํธ(<<)๊ฐ ๋ ๋์๋ ์ค๋ฅธ์ชฝ์ 0์ด ์ฃผ์ด์ง ๊ฐ์๋งํผ ์ถ๊ฐ๋๊ณ ,
์ค๋ฅธ์ชฝ ๋นํธ์ํํธ(>>)๊ฐ ๋ ๋์๋ ์ผ์ชฝ์ 0(0 ๋๋ ์์ ์ ์์ธ ๊ฒฝ์ฐ)์ด๋ 1(์์ ์ ์์ธ ๊ฒฝ์ฐ)์ด ๊ฐ์๋งํผ ์ถ๊ฐ๋๊ณ ,
๊ฐ์ฅ ์ค๋ฅธ์ชฝ์ ์๋ 1๋นํธ๋ ์ฌ๋ผ์ง๋ค.
์์
n = 10
print(n<<1) #10์ 2๋ฐฐ ํ ๊ฐ์ธ 20 ์ด ์ถ๋ ฅ๋๋ค.
print(n>>1) #10์ ๋ฐ์ผ๋ก ๋๋ ๊ฐ์ธ 5 ๊ฐ ์ถ๋ ฅ๋๋ค.
print(n<<2) #10์ 4๋ฐฐ ํ ๊ฐ์ธ 40 ์ด ์ถ๋ ฅ๋๋ค.
print(n>>2) #10์ ๋ฐ์ผ๋ก ๋๋ ํ ๋ค์ ๋ฐ์ผ๋ก ๋๋ ๊ฐ์ธ 2 ๊ฐ ์ถ๋ ฅ๋๋ค.
์ ์ 10์ 2์ง์ ํํ์ ... 1010 ์ด๋ค.
10 << 1 ์ ๊ณ์ฐํ๋ฉด ... 10100 ์ด ๋๋ค ์ด ๊ฐ์ 10์ง์๋ก 20์ด๋ค.
10 >> 1 ์ ๊ณ์ฐํ๋ฉด ... 101 ์ด ๋๋ค. ์ด ๊ฐ์ 10์ง์๋ก 5์ด๋ค.
n = 10 ๊ณผ ๊ฐ์ด ํค๋ณด๋๋ก ์
๋ ฅ๋ฐ์ง ์๊ณ ์ง์ ์์ฑํด ๋ฃ์ ์ฝ๋์์, ์ซ์๋ก ์์ํ๋ ๋จ์ด(์๋ณ์, identifier)๋ ์๋์ผ๋ก ์๋ก ์ธ์๋๋ค.
n = 10 ์์ 10 ์ 10์ง์ ์ ์ ๊ฐ์ผ๋ก ์ธ์๋๋ค.
๋ณ์ n ์ ๋ฌธ์์ด์ ์ ์ฅํ๊ณ ์ถ๋ค๋ฉด, n = "10" ๋๋ n = '10'์ผ๋ก ์์ฑํด ๋ฃ์ผ๋ฉด ๋๊ณ ,
n = 10.0 ์ผ๋ก ์์ฑํด ๋ฃ์ผ๋ฉด ์๋์ผ๋ก ์ค์ ๊ฐ์ผ๋ก ์ ์ฅ๋๋ค.
n = 0o10 ์ผ๋ก ์์ฑํด ๋ฃ์ผ๋ฉด 8์ง์(octal) 10์ผ๋ก ์ธ์๋์ด 10์ง์ 8๊ฐ์ด ์ ์ฅ๋๊ณ ,
n = 0xf ๋ n = 0XF ์ผ๋ก ์์ฑํด ๋ฃ์ผ๋ฉด 16์ง์(hexadecimal) F๋ก ์ธ์๋์ด 10์ง์ 15๊ฐ์ผ๋ก ์ ์ฅ๋๋ค.
** python์์ ์ค์ ๊ฐ์ ๋ํ ๋นํธ์ํํธ ์ฐ์ฐ์ ํ์ฉ๋์ง ์๊ณ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
(์ค์ ๊ฐ๋ ์ปดํจํฐ ๋ด๋ถ์ ์ผ๋ก๋ 2์ง์ ํํ๋ก ์ ์ฅ๋๊ณ ๋นํธ์ํํธ ์ฒ๋ฆฌ๊ฐ ๋ ์ ์์ง๋ง, python ์์๋ ํ์ฉํ์ง ์๋๋ค.)
์ ์ 2๊ฐ(a, b)๋ฅผ a๋ฅผ 2b๋ฐฐ ๊ณฑํ ๊ฐ์ผ๋ก ์ถ๋ ฅํด๋ณด์.
a = 2
b = 10
print(a << b) #210 = 1024 ๊ฐ ์ถ๋ ฅ๋๋ค.
์ถ์ฒ: codeup.kr/
'Study > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Matplotlib] python matplotlib ํ๊ธ ๊นจ์ง ํด๊ฒฐํ๊ธฐ (0) | 2023.03.26 |
---|---|
[python] ๋ ผ๋ฆฌ์ฐ์ฐ์(Logical Operator): AND, OR, NOT, XOR (0) | 2023.03.22 |
[python] ๋น๊ต/๊ด๊ณ ์ฐ์ฐ์ (0) | 2023.03.22 |
[python] ํ์ด์ฌ ์์์ ์๋ฆฌ(round,format,f-string,'%.nf') (0) | 2023.03.21 |
[python] ํ์ด์ฌ str.split()ํจ์ (0) | 2023.03.21 |