[unix] bc는 dc와 어떻게 다릅니 까?

계산기 dc와 의 차이점은 무엇입니까 bc?

언제 사용해야 dc언제 bc?



답변

dc매우 오래된 도구이며보다 약간 오래된 도구 bc입니다. Wikipedia 페이지 를 인용하려면 :

C 프로그래밍 언어의 발명을 앞두고 가장 오래된 유닉스 유틸리티 중 하나입니다. 그 빈티지의 다른 유틸리티와 마찬가지로 강력한 기능 세트가 있지만 매우 간결한 구문이 있습니다.

구문은 역 광택 표기법으로, 기본적으로 인수 (예 : 숫자)가 연산자 뒤에옵니다. dc사용법 의 기본 예 는 다음과 같습니다.

echo '3 4 * p' | dc

어디는 p계산 결과를 인쇄하는 데 필요합니다. bc반면에 친숙한 접두사 표기법을 사용하므로보다 직관적입니다. bc사용 예는 다음과 같습니다 .

echo '3 * 4' | bc

어느 것을 사용해야합니까?

bcPOSIX에 의해 표준화되어 있으므로 아마도 둘 중 더 이식성이 좋을 것입니다 (적어도 최신 시스템에서는). 수동 계산기 작업을하는 경우 확실히 선택입니다 (당신이 다소 마조히스트가 아닌 한). dc역 광택 표기법이 유용한 경우가 있습니다. 총계로 만들려는 일련의 숫자를 출력하는 프로그램이 있다고 상상해보십시오.

23
7
90
74
29

스트림에 dca 만 추가하면되므로 다음과 같이하는 것이 매우 간단합니다 (적어도 각 연산자가 두 개 이상의 숫자를 사용할 수있는 최신 구현에서는) +p.

{ gen_nums; echo +p } | dc

그러나 각 숫자 사이에 숫자 bc를 넣고 모든 줄이 같은 줄에 있어야 할뿐만 아니라 끝에 줄 바꿈이 있어야하기 때문에 더 복잡 합니다.+

{ gen_nums | sed '$ !s/$/+/' | tr -d '\n'; echo; } | bc


답변

이 둘의 기본적인 차이점 dc리버스 폴란드어 표기법 을 사용 한다는 것 입니다. 출력을 생성하기 위해 명시적인 명령이 필요합니다.

bc다음과 같이 말하면 두 개의 정수를 추가 할 수 있습니다 .

bc <<< "2+4"

그리고 그것은 6스스로 라인을 생산할 것입니다. 그러나 dc다음과 같이 말해야합니다.

dc <<< "2 4 +p"

또한, 사용하는 재미 물건을 할 수있는 dc예를 들어, 내 대답을 참조하십시오 여기에 생산

Hello World!

사용하여 dc.

dc <<< “8 9 * P101P108P108P111P4 8 * P81 6 + P111P114P108P100P33P”


답변

dc계산기이지만 bc실제 언어입니다. 해당 매뉴얼 페이지를 참조하십시오.

dc

dc는 무제한 정밀 산술을 지원하는 리버스 폴리쉬 데스크 계산기입니다. 또한 매크로를 정의하고 호출 할 수 있습니다. 일반적으로 dc는 표준 입력에서 읽습니다. 명령 인수가 제공되면 파일 이름이며 dc는 표준 입력에서 읽기 전에 파일의 내용을 읽고 실행합니다. 모든 일반 출력은 표준 출력입니다. 모든 오류 출력은 표준 오류입니다.

기원전

bc는 문장의 대화식 실행으로 임의의 정밀도 숫자를 지원하는 언어입니다. 구문은 C 프로그래밍 언어와 유사합니다. 표준 수학 라이브러리는 명령 행 옵션으로 제공됩니다. 요청 된 경우 수학 라이브러리는 파일을 처리하기 전에 정의됩니다. bc는 명령 행에 나열된 모든 파일의 코드를 나열된 순서대로 처리하여 시작합니다. 모든 파일이 처리 된 후 bc는 표준 입력에서 읽습니다. 모든 코드는 읽을 때 실행됩니다. 파일에 프로세서를 중지하는 명령이 포함되어 있으면 bc는 표준 입력에서 읽지 않습니다.

그것은 당신이 궁극적으로 수학적으로하고 싶은 것에 달려 있습니다. 을 사용하여 일부 작업을 수행 할 수 없습니다 dc. 몇 가지 다른 명령 줄 계산기 도구 외에도 몇 년 동안 사용했습니다. 몇 가지 추가 예제는 ” 명령 행 표현식 솔버? “를 참조하십시오 .


답변

나의 겸손한 의견과 가능한 한 적은 단어로 GNU dc는 세 가지면에서 GNU bc와 다릅니다.

1) bc의 수학 라이브러리가 걱정스럽지 않은 경우, 기초 산술을 할 때 가능한 한 많은 키 입력 (1 월 Łukasiewicz의 말 : 괄호가없는 표기법)을 저장하여 필수 사항에 집중하고 산만하지 않도록하십시오.

2) Microsoft Windows 7의 명령 행에서 GNU dc는 GNU bc보다 적은 메모리 (~ 320K)를 소비합니다 (~ 360K).

3) GNU bc보다 GNU dc에서 세분화 된 제어, 예를 들어 스택 및 레지스터 명령은 GNU bc에 없습니다.

둘 다에 대한 버전 1.07.1 win32는 https://embedeo.org/ws/command_line/bc_dc_calculator_windows/에 있습니다.


답변