2014-06-20 4 views
0
내가 NTL 라이브러리를 사용 갈루아 필드에서 INT 표현을 얻을 수있을 것입니다 방법

를 가져옵니다. 요소의 예를 들어 내가 사용INT 표현 NTL GF2E

printf("%d",xx._GF2E__rep.HexOutput); 

을 시도하고 있지만 얻을

GF2E xx=random_GF2E(); 

0

답변

1

GF2E이 확장 필드는 PGF(2)[X]/(P)에 살고 GF2E의 요소, 즉,이다 환원 불가능한 다항식 따라서 정수 표현을 얻을 수 없습니다. 그러나 벡터로 표현할 수 있습니다.

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]" 

공지 사항 : 당신은 당신이 포함 후 using namespace NTL;using namespace std;를 사용하여 네임 스페이스 NTL 당신을 programm에 std를 가져올 수 있고,이 코드를 사용합니다.
다른 방법은 coutendl에 모든 NTL 기능에 NTL::std::를 추가하는 것입니다.
네임 스페이스에 대한 자세한 내용은 this tutorial을 참조하십시오.

+0

저에게 시간을 절약해 주셔서 감사합니다! – Bush

+0

벡터의 정수 표현을 얻을 수있는 방법이 있습니까? 즉 가장 높은 차수 계수가 그 정수의 MSB이고 x^0의 계수가 LSB? 그것이 이상한 표현을 초래 BytesFromGF2X 방법을 사용하는 경우 큰 엔디안도 GF2E' '에서 리틀 엔디안 – Bush

+0

@Bush 엘리멘트도 숫자 만 다항식 없습니다. 그래서 벡터는 지수를 나타냅니다. 이 다항식을 정수로 표현할 표준 방법이 없다고 생각합니다. – AbcAeffchen