我有一组 0 和 1,表示为最初使用 创建的列表sample(c(0,1), n, replace=TRUE)
,其中 n 是我的二进制数的长度。我目前正在使用 BCD 转换器将我的二进制数转换为十进制数,在这里可以看到:
BCD.to.Decimal <- function(binaryNumb)
{
binaryLength = length(binaryNumb)
decimalNumb = 0
for(i in 1:binaryLength)
{
if ( binaryNumb[i] == 1)
decimalNumb = decimalNumb + 2^(binaryLength - i)
}
decimalNumb
}
我想改用 GrayCode.To.Decimal 转换器,它与我的 BCD.to.Decimal 转换器执行相同的工作,但改用格雷码。
注意:速度对此很重要,我想以最有效的方式做到这一点。我知道我的 BCD 转换器可能不是最有效的,它只是最简单的,如果您有一种更有效的方式来处理 BCD 转换,我也有兴趣了解这一点。