求使得算术等式32 + 12 = 28成立的数基
算术表达式
32 + 12 = 28 成立的数基推导 首先明确基础规则:任意b进制数中出现的数位最大值必须小于b,本表达式中最大数位为8,因此所有数均为b进制的前提下,b ≥ 9。
场景1:第二个数12为十进制有符号负数(值为-12)
这是目前唯一存在合法解的场景,假设32和28为b进制无符号数,12为十进制的-12,将所有值转十进制列等式:
(3*b + 2) - 12 = 2*b + 8
化简计算:
3b - 10 = 2b + 8 b = 18
验证结果:
- 18进制
32转十进制:3*18 + 2 = 56 - 56 减 12 得 44
- 18进制
28转十进制:2*18 + 8 = 44,等式完全成立。
场景2:所有数为同进制,12为b进制双位补码有符号数
如果12是和其他数同进制的双位补码有符号数,双位b进制补码的最高位为符号位,1开头代表负数,真值计算规则为真值 = -(b² - 无符号值),因此12的真值为-(b² - (b + 2))。
代入等式转十进制:
3b + 2 - (b² - b - 2) = 2b + 8
化简得:
b² - 2b + 4 = 0
该方程无正整数解,此场景下不存在符合要求的数基。
场景3:12为符号幅度编码的有符号数
如果12采用符号幅度编码(最高位1代表负,剩余位直接为幅度值),则12的真值为-2,代入等式:
3b + 2 - 2 = 2b + 8 b = 8
但数基8的合法数位最大值为7,本表达式中出现数位8不符合数基规则,因此该解无效。
内容的提问来源于stack exchange,提问作者afc2020
相关产品推荐
相关产品推荐

