#include <iostream>
#include <string>
#define MaxCharBufferSize 100
#define MaxIntBufferSize 50
#define CharPerInteger 8
#define CoverPerInteger 100000000
using namespace std;
/*void reversethearray(char* intarray,int lengthofarray){
char *arrayb=new char(lengthofarray);
for (int i=0;i<lengthofarray;i++)
{
arrayb[i]=intarray[i];
}
for (int i=0;i<lengthofarray;i++)
{
intarray[lengthofarray-i-1]=arrayb[i];
}
}
*/
int tens(int pow){
int result=1;
if(pow==0)
return result;
for (int i=0;i<pow;i++)
{
result=result*10;
}
return result;
}
int StringtoInteger(char* stringa,int* inta){
int length=strlen(stringa);
int count_size=length/CharPerInteger;
if (length%CharPerInteger!=0)
{
count_size++;
}
for (int i=0;i<count_size;i++)
{
int buffer=0;
for (int j=0;j<CharPerInteger&&(i*CharPerInteger+j)<length;j++)
{
buffer=buffer+(stringa[length-i*CharPerInteger-j-1]-'0')*tens(j);
// cout<<buffer<<'/t';
}
inta[i]=buffer;
}
return count_size;
}
void Printthearray(int* inta,int length_string){
for (int i=0;i<length_string;i++)
{
cout<<inta[i]<<'/t';
}
cout<<length_string<<endl;
}
int IntegerAnd(int* integera,int lengthofa,int* integerb,int lengthofb){
bool flags[MaxIntBufferSize]={false};
int length=lengthofa;
if (lengthofa<lengthofb)
{
length=lengthofb;
for(int i=lengthofa;i<length;i++)
integera[i]=0;
}
else
for (int i=lengthofb;i<length;i++)
{
integerb[i]=0;
}
cout<<"length="<<length<<endl;
for (int i=0;i<length;i++)
{
int sum=integera[i]+integerb[i];
if (sum>=CoverPerInteger)
{
flags[i]=true;
}
cout<<"flags("<<i<<")="<<flags[i]<<'/t';
integera[i]=sum;
cout<<integera[i]<<'/t';
}
cout<<endl;
for (int i=0;i<length;i++)
{
if (flags[i]==true)
{
integera[i]=integera[i]-CoverPerInteger;
integera[i+1]++;
if (integera[i+1]>=CoverPerInteger)
{
flags[i+1]=true;
}
}
if (flags[length-1]==true)
{
integera[length]=1;
length++;
}
}
cout<<"True length is:"<<length<<endl;
return length;
}
void printtheresult( int* integer, int length )
{
cout << "Last Reslut=" << endl;
for ( int i = length - 1; i >= 0; i ++ )
{
}
}
void main(){
char string1[MaxCharBufferSize];
char string2[MaxCharBufferSize];
int integer1[MaxIntBufferSize];
int integer2[MaxIntBufferSize];
cout<<"Enter the first number:";
cin>>string1;
cout<<"Enter the second number:";
cin>>string2;
// reversethearray(string1,strlen(string1));
// reversethearray(string2,strlen(string2));
int length1=StringtoInteger(string1,integer1);
int length2=StringtoInteger(string2,integer2);
Printthearray(integer1,length1);
Printthearray(integer2,length2);
int length=IntegerAnd(integer1,length1,integer2,length2);
Printthearray(integer1,length);
// printtheresult(integer1,length);
for (;;)
{
}
}