기본적으로 bc는 모든 알파벳 문자를 9로 해석합니다.

기본적으로 bc는 모든 알파벳 문자를 9로 해석합니다.

체계:

  • 우분투 22.04.3 LTS
  • GNU bash, 버전 5.1.16(1)-릴리스(x86_64-pc-linux-gnu)
  • 기원전 1.07.1

관찰하다:

ibase그리고 설정되지 않았습니다 obase.

echo "A0" | bc
90
echo "B0" | bc
90
echo "X0" | bc
90

질문: 기본적으로 bc알파벳 문자가 9s 로 해석되는 이유는 무엇입니까? 여기에 오류 메시지를 표시하는 것이 더 좋지 않은 이유는 무엇입니까?

답변1

man bcGNU 시스템(GNU bc1.07 이상) 에서 :

간단한 표현식은 상수일 뿐입니다. bc변수에 지정된 현재 입력 기수를 사용하여 상수를 내부 십진수로 변환합니다 ibase. (함수에 예외가 있습니다.) 에 대한 유효한 값은 ibase2~36입니다. (16보다 큰 염기는 확장입니다.)
이 범위 밖의 값을 ibase2 또는 36개의 결과 값에 할당합니다. 입력 번호에는 0-9 및 AZ 문자가 포함될 수 있습니다. (참고: 대문자여야 합니다. 소문자는 변수 이름입니다.) 의 값에 관계없이 단위 번호는 항상 해당 숫자의 값을 갖습니다 ibase. (즉, A = 10.)여러 자리, 값보다 크거나 같은 모든 bc입력 숫자를 변경합니다. 이렇게 하면 숫자가 항상 입력 베이스에서 가장 큰 3자리 숫자가 됩니다.ibaseibase-1ZZZ

(강조합니다.)

관련 정보