я работал над заданием, где я использовать битовые операторы (или, и, или нет)Двоичные числа с ведущими нулями
Программа имеет фиксированную матрицу 4X4 и пользователь предполагающих войти запрос к программе ANDing два бинарных номера, ORing их ... и т. д.
проблема - это двоичные числа с нулевым ведущим, например: 0111 показаны со значением 73 , даже когда мне удается отключить его с помощью setfill () и setw() Я не могу выполнить побитовую операцию по фактическому двоичному значению!N.B: Я пытался использовать строки вместо int, но побитовая операция по-прежнему не применяется.
Для примера:
хочу ли я и два двоичных значений, скажем INT х = 1100 и INT у = 0100 в другом Int г г = х & у;
результат предполагают, чтобы быть 0100 Но результат, который появляется в 6
, который также является результатом, который появляется, если я пытался напечатать у на экран
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
int main()
{
int Matrix[4][4]={{1,1,0,0},{1,1,0,1},{1,1,0,1},{0,1,0,0}};
string Doc[4]={"Doc1","Doc2","Doc3","Doc4"};
string Term[4]={"T1","T2","T3","T4"};
cout << "THE MATRIX IS:"<<endl;
for(int i=0;i<4;i++)
{
cout<<"\t"<<Doc[i];
}
cout<<"\n";
for(int row=0; row<4;row++)
{
cout<<Term[row]<<"\t";
for(int col=0;col<4;col++)
{
cout<<Matrix[row][col]<<"\t";
}
cout<<endl;
}
int term1=1100;
cout<<"\nTerm1= "<<term1;
int term2=1101;
cout<<"\nTerm2= "<<term2;
int term3=1101;
cout<<"\nTerm3= "<<term3;
int term4=0100;
cout<<"\nTerm4= "<<setfill('0')<<setw(4)<<term4;
int Q=term1&term4;
cout<<"\n Term1 and Term4 ="<<Q;
system("pause");
return 0;
}
Пожалуйста, отправьте код. Кроме того, числовые литералы, начинающиеся с '0', являются« восьмеричными »на C++, а не бинарными. Итак, '73' - десятичный эквивалент восьмеричного' 111'. – PaulMcKenzie
Манипулятор 'std :: dec' должен предотвращать восьмеричную интерпретацию. –
Пожалуйста, напишите [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve). –