bc: 왜 `ibase=16; 비만=10; FF`는 255가 아닌 FF를 반환합니까?

bc: 왜 `ibase=16; 비만=10; FF`는 255가 아닌 FF를 반환합니까?

bc저는 2진수를 16진수로, 8진수를 10진수로 변환하는 데 사용했습니다 .

다음 예에서는 16진수(16진수)를 2진수, 8진수, 10진수로 변환하려고 했습니다.

처음 2번 시도에는 아무런 문제가 없습니다.

$ echo 'ibase=16; obase=2; FF' | bc  
11111111
$ echo 'ibase=16; obase=8; FF' | bc 
377

그런데 16진수(16진수)를 10진수(10진수)로 변환하려고 했더니 잘못된 답이 나왔습니다. 대답은255

$ echo 'ibase=16; obase=10; FF' | bc 
FF

답변1

완료 되면 ibase=16추가 입력 숫자는 16진수로 표시됩니다.포함10은 10 obase=10진수 값 16을 나타냅니다. 따라서 새로운 입력 기준(현재 16진수)을 사용하여 앞에 obase를 설정하거나 나중에 설정하십시오.

$ echo 'obase=10; ibase=16; FF' | bc
255
$ echo 'ibase=16; obase=A; FF' | bc
255

관련 정보