bc: `ibase=16;okee=10;FF`가 255 대신 FF를 반환하는 이유는 무엇입니까? [복사]

bc: `ibase=16;okee=10;FF`가 255 대신 FF를 반환하는 이유는 무엇입니까? [복사]

bc저는 2진수를 16진수로, 8진수를 10진수로 변환하는 작업을 해왔습니다 .

아래 예에서는 16진수(hex) 숫자를 2진수, 8진수, 10진수로 변환해 봅니다.

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

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

그런데 16진수(hex) 숫자를 10진수(decimal)로 변환하려고 하면 잘못된 답이 나옵니다. 대답은255

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

답변1

완료되면 ibase=1616진수로 숫자를 추가로 입력하세요.포함하다10은 10 obase=10진수 값 16을 나타냅니다. 따라서 obase는 새로운 입력 기준(현재 16진수)을 사용하기 전이나 후에 설정할 수 있습니다.

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

관련 정보