Собственно есть как бэ программа, в моих представлениях она должна работать,ам....
Code
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <malloc.h>
void sum(int* a,int* b);
int main ()
{
clrscr();
int m1[16],m2[16],mx[16], ch1, ch2, i, j;
for (i = 0; i < 16; i++)
{
m2[i] = 0; m1[i] = 0; mx[i] = 0;
}
cin>>ch1>>ch2;ch2=~ch2+1;
for (i=0, j=15;i<16;i++, j --)
{
m2 [j] = (ch2>>i) &1;
m1 [j] = (ch1>>i) &1;
}
for (i = 15; i > 0;i--)
{
if (m2[i] == 1)
{
sum(m1, mx);
}
for (j = 15; j > 0; j--)
{
m1[j] = m1[j-1];
}
m1[16] = 0;
}
for (i = 0; i < 16; i++)
{
cout<<mx[i];
}
getch();
return 0;
}
void sum(int* a, int* b)
{
int s = 0, p = 0;
for (int i = 15; i > 0; i--)
{
s = (!a[i]&!b[i]&p)|(!a[i]&b[i]&!p)|(a[i]&!b[i]&!p)|(a[i]&b[i]&p);
p = (!a[i]&b[i]&p)|(a[i]&!b[i]&p)|(a[i]&b[i]);
b[i] = s;
}
}
возможно проблемма в строчке
ch2=~ch2+1;
какбэ может надо переводить в дополнительный код позже....
товорисчи хэлп...