쉘스크립트에서 이진수 계산은?

mhkang의 이미지

쉘스크립트에 발 들여논지 얼마안된 초봅니다.
스크립트 짜는 재미가 쏠쏠하긴한데 한번 막히면 당최 진도가 안나가네요..^^;
십진수를 이진수로 바꿔서 and 연산을 한후 다시 십진수로 바꿔야는데
도무지 모르겠슴다..

예를 들면,
180 -> 10110100
128 -> 10000000
----------------------
10000000 -> 128

이런식으로..한수 지도를..

crimsoncream의 이미지

echo 'ibase=A;obase=2;180'|bc

오늘 우리는 동지를 땅에 묻었습니다. 그러나 땅은 이제 우리들의 것입니다.
아직도 우리의 적은 강합니다. 그러나 우리는 그들보다 많습니다.
항상 많을 것입니다.

mhkang의 이미지

crimsoncream wrote:
echo 'ibase=A;obase=2;180'|bc
감사합니다.
for 문 돌리고 별짓해도 못하던건데..
책에도 안나와있더라구요..ㅡ.ㅡ
다시 한번 감사드리구요..
염치없지만 ibase랑 obase에 대해 간단히
설명좀 해주시면 안될까요?
obase=2는 2진수라는 뜻인가요?
그럼 조언 부탁합니다.^^;
dk의 이미지

let 을 사용하실 것을 권해드립니다.

$ let 'resul = 128 & 180'
$ echo "$resul"
128
$ help let

http://doc.kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/numerical-constants.html

도 좋은 참고가 될 것 같습니다.

pynoos의 이미지

mhkang wrote:
crimsoncream wrote:
echo 'ibase=A;obase=2;180'|bc
감사합니다.
for 문 돌리고 별짓해도 못하던건데..
책에도 안나와있더라구요..ㅡ.ㅡ
다시 한번 감사드리구요..
염치없지만 ibase랑 obase에 대해 간단히
설명좀 해주시면 안될까요?
obase=2는 2진수라는 뜻인가요?
그럼 조언 부탁합니다.^^;

bc의 manual 을 살펴보세요.

mhkang의 이미지

모두들 감사합니다.
원래 ip랑 prefix값만 입력받아서 네트웍설정을 바꿀려고했던거라..
let 으로 정말 간단히 해결되네요..^^;
아..매뉴얼은..영문은 엄두도 못네고,
여기저기 뒤져서 한글 매뉴얼 읽어봤는데 당최 이해가..ㅡㅡ;
다시 한번 조언주신분들에게 감사드립니다. 꾸벅~(--)(__)