C/C++代码
#include <iostream>
#include <stdlib.h>
using namespace std;
void print_array(int num[8])
{
for(int i=0 ; i<8 ;)
{
printf("%d",num[i++]);
}
}
void addition(int num1[8] , int num2[8])
{
int num3[8];
for(int i=0; i<8; i++)
{
num3[i] = (num1[i]+num2[i]) % 2;
}
cout << " 加法运算:" << endl;
cout << "num1 :";
print_array(num1);
cout << endl;
cout << "num2 :";
print_array(num2);
cout << endl;
cout << "计算结果为:";
print_array(num3);
cout << endl;
}
void subtraction(int num1[8] , int num2[8])
{
int num3[8];
for(int i=0; i<8; i++)
{
num3[i] = (num1[i]-num2[i]);
if(num3[i]<0)
{
num3[i] += 2;
}
num3[i] = num3[i] % 2;
}
cout << " 减法运算:" << endl;
cout << "num1 :";
print_array(num1);
cout << endl;
cout << "num2 :";
print_array(num2);
cout << endl;
cout << "计算结果为:";
print_array(num3);
cout << endl;
}
void multiplication(int num1[8] , int num2[8])
{
int num3[8][8];
int num4[8];
for(int i=0 ; i<8 ; i++)
{
for(int j=0; j<8 ; j++)
{
num3[i][j] = (num1[j]*num2[7-i]) % 2;
}
}
for(int k=0 ; k<8 ; k++)
{
int temp = 0;
for(int m=0 ; m<8-k ; m++)
{
temp = temp + num3[m][m+k];
}
num4[k] = temp % 2;
}
cout << " 乘法运算:" << endl;
cout << "num1 :";
print_array(num1);
cout << endl;
cout << "num2 :";
print_array(num2);
cout << endl;
cout << "计算结果为:";
print_array(num4);
cout << endl;
}
int main()
{
int num1[8] = {0,0,0,0,0,0,0,1};
int num2[8] = {0,0,0,0,0,0,1,1};
cout << "1. GF 2^8 上的加法、减法和乘法运算" << endl;
cout << endl;
addition(num1,num2);
cout << endl;
subtraction(num1,num2);
cout << endl;
multiplication(num1,num2);
system("pause");
return 0;
}
运行结果