Warum ignoriert "bc" meine "Obase"?

784
Alan H.
>>> bc bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'.  ibase = 16  obase = 56 BE753DE5C17F1B6C9F5D1E8A628B74B0FFC4A7 13 54 52 19 83 18 71 14 32 84 08 11 54 04 20 50 49 70 30 00 29 44 7\ 7 33 

Die Eingabe erfolgt offensichtlich in Hex. Nun gehe ich davon aus, dass es sich bei der Ausgabe um dezimale Repräsentationen von "Ziffern" in Basis 56 handeln soll. Aber dann sollte der höchste Ausgabepunk 55 sein, oder? Warum sehe ich eine "83" und eine "84"?

2
Bei Eingabe von "38" (Hex - 3 × 16 + 8 = 56) würde ich erwarten, dass "10" zurückgegeben wird. Aber es gibt mir "56" zurück. Also, was zum Teufel, warum ignoriert es meine "Obase" -Einstellungen? Alan H. vor 12 Jahren 0

1 Antwort auf die Frage

5
maiklos

Deklaration ibasevon 16 Sätzen bcim Hex-Modus, also Ihre nächste Zeile:

obase = 56 

wird eigentlich als hexadezimal interpretiert: 0x56= 86 in dezimal, weshalb Ihre Ausgabe "Digits" Werte bis 85, jedoch nicht größer als diese enthält.

Tauschen Sie die Reihenfolge, in der Sie deklarieren, ibaseund obaselöst diese:

obase = 56 ibase = 16 BE753DE5C17F1B6C9F5D1E8A628B74B0FFC4A7 01 27 46 38 00 54 21 49 15 55 31 13 08 39 08 26 31 35 14 01 25 24 0\ 6 13 11 36 07 

und:

38 01 00 
(War anfangs wirklich verwirrt, bearbeitete Ihre Antwort jedoch aus Gründen der Klarheit, nachdem Sie verstanden hatten, was Sie meinten! Danke! Alan H. vor 12 Jahren 0