【发布时间】:2015-12-14 07:56:05
【问题描述】:
我正在研究我的椭圆曲线密码学项目,该项目需要对二进制字段进行编程。它包括基本操作,如加法、乘法、求逆等 w.r.t。一个不可约的二元多项式。
我正在寻找一种将这些二进制多项式存储在程序中的方法。我正在研究 C 和 C++ 编程语言(使用 gmp 库),所以我首先想到的是使用结构和位域。但它们不是动态的,不能保存任意长的多项式。使用 C++ Vector STL 是可行的,但效率不高,因为它将单个位存储在 8 位或更多位的单个字中。
有没有什么有效的表达方式?
【问题讨论】:
-
std::vector
使用 1 位内存进行 1 位表示 -
你最好的选择可能是
boost::dynamic_bitset。 -
为什么投反对票?这不是一个完全合理的问题吗? Stackoverflow 似乎越来越没用了……
-
请选择一种语言,你不能同时用两种不同的语言编程。C 或 C++ 会给出不同的答案。
-
@Lundin:但他确实使用两种语言! gmp 是一个 C 库,他的应用程序似乎是用 C++ 编写的。 [编辑:删除蛇]
标签: c++ polynomial-math