๋ฌธ์ ์ค๋ช
์ ์ 1๊ฐ๋ฅผ ์
๋ ฅ๋ฐ์ 2๋ฐฐ ๊ณฑํด ์ถ๋ ฅํด๋ณด์.
์ฐธ๊ณ
*2 ์ ๊ฐ์ ์ถ๋ ฅํด๋ ๋์ง๋ง,
์ ์๋ฅผ 2๋ฐฐ๋ก ๊ณฑํ๊ฑฐ๋ ๋๋์ด ๊ณ์ฐํด ์ฃผ๋ ๋นํธ๋จ์์ํํธ์ฐ์ฐ์ <<, >>๋ฅผ ์ด์ฉํ๋ค.
2์ง์ ํํ๋ก ์ ์ฅ๋์ด ์๋ ๊ฐ๋ค์ ์ผ์ชฝ(<<)์ด๋ ์ค๋ฅธ์ชฝ(>>)์ผ๋ก
์ง์ ํ ๋นํธ ์๋งํผ ๋ฐ์ด์ฃผ๋ฉด 2๋ฐฐ์ฉ ๋์ด๋๊ฑฐ๋ ๋ฐ์ผ๋ก ์ค์ด๋๋๋ฐ,
์ผ์ชฝ ๋นํธ์ํํธ(<<)๊ฐ ๋ ๋์๋ ์ค๋ฅธ์ชฝ์ 0์ด ์ฃผ์ด์ง ๊ฐ์๋งํผ ์ถ๊ฐ๋๊ณ ,
a<<1 = 2๋ฐฐ ๊ณฑํ๊ธฐ
์ค๋ฅธ์ชฝ ๋นํธ์ํํธ(>>)๊ฐ ๋ ๋์๋
์ผ์ชฝ์ 0(0 ๋๋ ์์ ์ ์์ธ ๊ฒฝ์ฐ)์ด๋ 1(์์ ์ ์์ธ ๊ฒฝ์ฐ)์ด ๊ฐ์๋งํผ ์ถ๊ฐ๋๋ค.
a>>1 = ๋ฐ์ผ๋ก ๋๋๊ธฐ
๋ฒ์(32๋นํธ)๋ฅผ ๋์ด์ ์ด๋๋๋ ๋นํธ๋ ์ญ์ ๋๋ค.
์์
int a=10;
printf("%d", a<<1); //10์ 2๋ฐฐ ํ ๊ฐ์ธ 20 ์ด ์ถ๋ ฅ๋๋ค.
printf("%d", a>>1); //10์ ๋ฐ์ผ๋ก ๋๋ ๊ฐ์ธ 5 ๊ฐ ์ถ๋ ฅ๋๋ค.
printf("%d", a<<2); //10์ 4๋ฐฐ ํ ๊ฐ์ธ 40 ์ด ์ถ๋ ฅ๋๋ค.
printf("%d", a>>2); //10์ ๋ฐ์ผ๋ก ๋๋ ํ ๋ค์ ๋ฐ์ผ๋ก ๋๋ ๊ฐ์ธ 2 ๊ฐ ์ถ๋ ฅ๋๋ค.
์ ๋ ฅ
์ ์ ํ ๊ฐ๊ฐ ์
๋ ฅ๋๋ค.
๋จ, -1073741824 ~ +1073741823
์ถ๋ ฅ
2๋ฐฐ ๊ณฑํ ์ ์๋ฅผ ์ถ๋ ฅํ๋ค.
์ ๋ ฅ ์์
1024
์ถ๋ ฅ ์์
2048
๋ฌธ์ ํ์ด
#include <stdio.h>
int main(){
long long int n;
scanf("%lld",&n);
printf("%lld",n<<1);
return 0;
}