>>> 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
声明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