Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Alan85

Забанен


Сообщения: 463
Благодарности: 91

Профиль | Цитировать


для операций AND OR и XOR можно не переводить в тип unsigned short (двойная работа). Я предлагаю вот так:
Код: Выделить весь код
#include <iostream>
#include <string>
using namespace std;
string op_and(string s1, string s2)
{    cout<<s1<<'\n'<<"AND\n"<<s2<<'\n'<<"Equals\n";
	string ret="000000000000";
	for (int i = 0; i <= 11; i++)
	   if (s1[i]=='1'&&s2[i]=='1') ret[i]='1';

	return  ret;
}

string op_or(string s1, string s2)
{
  cout<<s1<<'\n'<<"OR\n"<<s2<<'\n'<<"Equals\n";
	string ret="000000000000";
	for (int i = 0; i <= 11; i++)
	   if (s1[i]=='1'||s2[i]=='1') ret[i]='1';

	return  ret;
}

string op_xor(string s1, string s2)
{
  cout<<s1<<'\n'<<"XOR\n"<<s2<<'\n'<<"Equals\n";
	string ret="111111111111";
	for (int i = 0; i <= 11; i++)
	   if ((s1[i]=='1'&&s2[i]=='1')||(s1[i]=='0'&&s2[i]=='0')) ret[i]='0';

	return  ret;
}
int main(int argc, char* argv[])
{
 string s1="001111100011" ;
 string s2="001010100011" ;
 string s3="";
 s3=op_and(s1,s2);
 cout<<s3<<'\n';
 s3=op_or(s1,s2);
 cout<<s3<<'\n';
  s3=op_xor(s1,s2);
 cout<<s3<<'\n';
 cin>>s3;
	return 0;
}
А для операций ADD и SUB придется переводит в число потом добавлять, вычитать и переводить обратно. В этом помогут исходники pva
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:56, 12-03-2009 | #7