1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| #include <stdio.h>
#define UCHAR_MAX 0xFF
typedef unsigned char uchar;
int main (void)
{
//
uchar a[8]={0x71,0x05,0x48,0x12,0x38,0x05,0x97,0x94}?
uchar b[5]={0x83,0x12,0x53,0x90,0x87};
uchar c[8];
somme (a,b,c);
for (int i=0,i<sizeof(c);i++)
{
printf("%c",c[i]);
}
printf ("\n");
}
void somme (uchar* a,uchar* b,uchar* c)
{
int resultat=0;
int retenu=0;
int tailleA=sizeof(a);
int tailleB=sizeof(b);
if (tailleA>=tailleB)
{
for (int i=0;i<tailleA;i++)
{
if (i<=tailleB) resultat = a[i] + b[i] + retenu;
else resultat = a[i] + retenu;
c[i] = resultat % (UCHAR_MAX+1);
retenu = resultat / (UCHAR_MAX+1);
}
} else {
for (int i=0;i<tailleB;i++)
{
if (i<=tailleA) resultat = a[i] + b[i] + retenu;
else resultat = b[i] + retenu;
c[i] = resultat % (UCHAR_MAX+1);
retenu = resultat / (UCHAR_MAX+1);
}
}
} |
Partager