从基数10转换为具有适当符号扩展的任意基数

时间:2018-01-04 16:26:08

标签: base-conversion radix sign-extension

我想知道在转换时是否有正式的方法可以在任意基础上正确签署扩展基数为10的数字。例如,如果我在基数10中有-256,那么我如何正确地签名扩展基数7(或基数n)中的结果而不假设结果的固定长度。

1 个答案:

答案 0 :(得分: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 < SUP>名词

由于 b-1 是基数b 中的最大数字 b n 包含所有n个最低有效数字中的0(即基数b中有n个零的100..0),(b-1)b n 只是一个数字b-1后跟n个零。剩下的部分( b n - y )是基数n中的旧的n位基数补充

因此,基本b中的1位数符号扩展基本上是将数字b-1添加到旧值的左侧。通过数学归纳,这将适用于n

的任何值

例如: