1

我正在研究 Z/2Z 上的多项式,我们用十六进制整数表示:例如,0xD4 是 X^7+x^6+X^4+X^2 (0xD4 是二进制的 11010100)我只想实现一个打印多项式的函数,就像我对 0xD4 所做的那样。所以我可以将我的十六进制数转换为二进制,然后在第 n 位等于 1 时打印 X^n ......但我想知道是否有最简单的方法可以做到这一点,你的意见?(我用 C 语言工作)

预先感谢您的帮助 :)

4

1 回答 1

2

你不需要转换任何东西。只是测试

if (poly & (1 << k)) {...}

查看是否存在k-th 幂(即对应的系数是 1 而不是 0)。

将其包裹在一个循环中,您就完成了。

(这里,poly0xD4你的例子。)

于 2014-10-02T18:50:06.577 回答