![bc: `ibase=16;okee=10;FF`가 255 대신 FF를 반환하는 이유는 무엇입니까? [복사]](https://linux55.com/image/139126/bc%3A%20%60ibase%3D16%3Bokee%3D10%3BFF%60%EA%B0%80%20255%20%EB%8C%80%EC%8B%A0%20FF%EB%A5%BC%20%EB%B0%98%ED%99%98%ED%95%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
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=16
16진수로 숫자를 추가로 입력하세요.포함하다10은 10 obase=10
진수 값 16을 나타냅니다. 따라서 obase는 새로운 입력 기준(현재 16진수)을 사용하기 전이나 후에 설정할 수 있습니다.
$ echo 'obase=10; ibase=16; FF' | bc
255
$ echo 'ibase=16; obase=A; FF' | bc
255