bc는 16 진 계산을 지원합니까?


20

hex직접 계산을 시도하고 있는데 bc이미 스케일을 지정했습니다.

echo 'scale=16;c06b1000-c06a5e78' | bc

그러나 나는 여전히 0을 얻습니다. 무엇이 잘못 될 수 있습니까?


기술적으로 귀하의 질문에 대한 답변은 아니지만 bc (1) 대신 moo (1) 을 고려할 수도 있습니다 .

답변:


33
echo 'ibase=16;C06D1000-C06A5E78' | bc
176520

소문자는 함수 및 변수 이름과 충돌하므로 대문자 CAS 16 진수 만 지원되므로 예제에서 0을 얻습니다 ( var1 - var2).

16 진법으로 답이 필요하면 obase변수를 설정하십시오 .

echo 'obase=16;ibase=16;C06D1000-C06A5E78' | bc
2B188

PS : 참고 scale로 전환 기반으로 설계되지 않았습니다. 보낸 사람 man bc:

scale defines how some operations use digits after the decimal point.
The default value of scale is 0.

따라서 '무엇이 될 수 있는가'에 대한 진정한 대답은 bc는 16 진 숫자에 대해 대문자 CAS 만 지원하며 편집자 Stephane에게 크레딧을 제공한다는 것입니다.
롤랜드

설정 obase하기 전에 설정하는 것이 중요합니다 ibase. 먼저 설정하면 ibase파싱 ​​된 값에도 영향을줍니다 obase. 즉ibase = 16; obase = 16;obase
0:16
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.