我正在研究Z / 2Z上的多项式,我们用十六进制的整数表示它: 例如,0xD4是X ^ 7 + x ^ 6 + X ^ 4 + X ^ 2(0xD4是二进制的11010100) 我只想实现一个打印多项式的函数,就像我用0xD4一样。 所以我可以将我的十六进制数转换成二进制,然后在第n位等于1时打印X ^ n但是我想知道是否有一种最简单的方法可以做到这一点,你的看法? (我用C语言工作)
提前感谢您的帮助:)
答案 0 :(得分:2)
你不需要转换任何东西。只是测试
if (poly & (1 << k)) {...}
查看k
次幂是否存在(即相应系数为1而不是0)。
将其包裹在循环中并完成。
(此处,poly
是您示例中的0xD4
。)