我将如何使用NTL库在Galois Field中获取int表示。例如元素
GF2E xx=random_GF2E();
我正在尝试使用
printf("%d",xx._GF2E__rep.HexOutput);
但我得到0
答案 0 :(得分:1)
GF2E是一个扩展字段,即GF2E中的元素位于GF(2)[X]/(P)
,其中P
是不可简化的多项式。所以你不能得到一个整数表示。但是你可以将一个表示作为一个向量。
GF2X P;
SetCoeff(P, 0, 1);
SetCoeff(P, 1, 1);
SetCoeff(P, 2, 1);
// P is now x^2+x+1, this is irreducable since P(1)=1 and P(0)=1
GF2E::init(P);
GF2E xx = random_GF2E();
cout << xx << endl; // Prints something like "[0 1]"
注意:要使用此代码段,您必须使用NTL
和{{1}将名称空间std
和using namespace NTL;
导入您的程序在你的包括之后
另一种方法是将using namespace std;
添加到所有NTL函数,将NTL::
添加到std::
和cout
。
有关命名空间的更多信息,请参阅this tutorial。