我想知道是否有一种正式的方法可以在转换时以任意基数正确签署扩展基数为 10 的数字。例如,如果我在基数 10 中有 -256,我将如何正确签署以基数 7(或基数 n)扩展结果而不假设结果的固定长度。
问问题
103 次
1 回答
0
来自维基百科:
根据定义,基数 b 中的 n 位数字 y 的基数补码是 b n − y
https://en.wikipedia.org/wiki/Method_of_complements#Numeric_complements
当我们将数字符号扩展为n+1
数字时,该值的新表示是
b n+1 - y = b*b n - y = b n - y + (b-1)b n
由于b-1是基数 b 中的最大数字,并且b n包含n 个最低有效数字中的所有 0(即 100..0,基数 b 中有 n 个零),因此(b-1)b n只是一个数字,b-1
后面跟着由 n 个零。剩下的部分 ( b n − y ) 是以 n 为底的旧 n 位基数补码
因此,基本上,base 中的 1 位符号扩展b
只是将数字添加b-1
到旧值的左侧。通过数学归纳,这将适用于 n 的任何值
例如:
-256 以 10 为底:
- 3 位数:744
- 4位数字:9744
- 5位数字:99744
-256 以 7 为底:
于 2018-01-04T17:08:52.033 回答