
Ich habe es verwendet bc
, um Zahlen vom Binär- ins Hexadezimalsystem, vom Oktal- ins Dezimalsystem usw. umzuwandeln.
Im folgenden Beispiel habe ich versucht, Zahlen zur Basis 16 (Hexadezimalzahlen) in Binär-, Oktal- und Dezimalzahlen umzuwandeln.
Bei den ersten beiden Versuchen habe ich keine Probleme.
$ echo 'ibase=16; obase=2; FF' | bc
11111111
$ echo 'ibase=16; obase=8; FF' | bc
377
Aber als ich versuchte, eine Zahl mit Basis 16 (Hexadezimalzahl) in eine Zahl mit Basis 10 (Dezimalzahl) umzuwandeln, erhielt ich eine falsche Antwort. Die Antwort sollte lauten255
$ echo 'ibase=16; obase=10; FF' | bc
FF
Antwort1
Sobald dies ibase=16
erledigt ist, werden weitere Zahlen hexadezimal eingegeben.einschließlich10 obase=10
stellt den Dezimalwert 16 dar. Legen Sie also entweder vorher oder nachher die Basis fest, und verwenden Sie dabei die neue Eingabebasis (jetzt hexadezimal):
$ echo 'obase=10; ibase=16; FF' | bc
255
$ echo 'ibase=16; obase=A; FF' | bc
255