adsense_in_article_test


[bash: echo, bc] 진법 변경(2진수/16진수 변환 등) 리눅스 bash script

산수 계산에 유용한 bc 명령을 이용하면 10진수를 2진수나 16진수로, 또는 그 반대로 변환할 수 있다. bc 명령에 대한 내용은 이전 게시물을 참고하자. 여기로

일단 아래의 예시를 보자.

# 10진수를 2진수로 변환 (obase 변경)
echo "obase=2; 27" | bc
11011

bc에는 출력값과 입력값의 기수(base)를 설정하는 변수가 있는데, 각각 obase와 ibase이다. (기본적으로 10진수를 사용하므로 기본값은 둘 다 10이다.) obase 값을 2로 설정하면 출력값이 2진수로 표현된다. 반대로 2진수를 10진수로 변환하려면 ibase 값을 2로 설정하면 되겠다.

# 2진수를 10진수로 변환 (ibase 설정)
echo "ibase=2; 11011" | bc
27

# 2진수를 16진수로 변환
# obase 설정 이후 ibase 설정
echo "obase=16; ibase=2; 11011" | bc
1B

obase와 ibase를 둘 다 설정할 경우 obase 설정이 먼저 나와야 한다. 왜 그러냐 하면, 예를 들어 ibase를 먼저 2로 설정하면 그 다음에 obase를 설정할 때 입력할 값이 먼저 설정된 ibase 기준(즉 2진법)으로 되어야 하기 때문이다. 2진수를 16진수로 변환할 때 ibase를 먼저 설정하는 경우는 아래와 같이 좀 복잡해진다.

# 2진수를 16진수로 변환
# ibase 설정을 먼저 하는 경우
echo "ibase=2; obase=10000; 11011" | bc
1B

입력값의 기수를 정하는 ibase가 먼저 2진수로 설정되었기 때문에, obase를 16진수로 설정하려면 16을 2진수로 변환한 10000을 obase 값으로 설정해 주어야 한다. 복잡하다.



덧글

댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.



통계 위젯 (화이트)

166516
2895
2275624

2019 대표이글루_IT

B-Side