2
>>> 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

Ввод, очевидно, в шестнадцатеричном виде. Теперь я предполагаю, что выходные данные должны быть десятичными представлениями "цифр" в базе 56. Но тогда максимальный выходной блок должен быть 55, верно? Так почему я вижу "83" и "84"?

1 ответ1

5

Объявление ibase из 16 переводит bc в шестнадцатеричный режим, поэтому ваша следующая строка:

obase = 56

на самом деле интерпретируется как шестнадцатеричный: 0x56 = 86 в десятичном виде, поэтому ваши выходные "цифры" включают значения до, но не более 85.

Замена порядка, в котором вы объявляете ibase и obase решает это:

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

а также:

38
 01 00

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .