설정 ibase
은 obase
동일한베이스 에 설정해야 함을 의미합니다 . 예제를 설명하면 다음과 같이 표시됩니다.
echo "ibase=F;obase=A;C0" | bc
bc
"ibase = F"를 사용하여 15 진수로 표시된 입력 번호를 고려하도록 설정 했습니다. "obase = A"는 출력 번호를 10 진수로 설정합니다. 이것이 기본값입니다.
bc
C0을 기본 15 숫자로 읽습니다 : C = 12. 12 * 15 = 180.
echo "ibase=F;obase=10;C0" | bc
이 경우 입력을 기준 15로 설정하고 출력을 기준 15에서 10으로 출력하므로 출력 기준은 15입니다. 기준 15의 C0 입력은 기준 15의 C0 출력입니다.
echo "ibase=16;obase=A;C0" | bc
입력을베이스 16으로 설정하고,베이스 10으로 출력합니다 (베이스 16의 A는베이스 10의 10입니다).
밑이 10으로 변환 된 C0는 12 * 16 = 192입니다.
내 개인 규칙은 obase를 먼저 설정하여 base 10을 사용할 수 있도록하는 것입니다. 그런 다음 base 10을 사용하여 ibase를 설정하십시오.
참고 bc
수행은 아이러니 예외가 있습니다 ibase=A
와 obase=A
항상에서베이스 (10)에 입력과 출력을 설정 bc
매뉴얼 페이지
Single digit numbers always have the value of the digit
regardless of the value of ibase.
이 동작의 사양에 모시는 bc
사람 : 2004 오픈 그룹의 bc
사양 :
When either ibase or obase is assigned a single digit value from
the list in 'Lexical Conventions in bc', the value shall be assumed
in hexadecimal. (For example, ibase=A sets to base ten, regardless
of the current ibase value.) Otherwise, the behavior is undefined
when digits greater than or equal to the value of ibase appear in
the input.
그렇기 때문에 ibase=F
설정이 입력베이스를베이스 15로 변경 한 이유는 항상베이스 10을 사용하여베이스를 설정하는 것이 좋습니다. 혼동하지 마십시오.