0

私の C++ プログラミング クラスの課題で、次のコードが与えられました。割り当ては単に「このプログラムは次の数字のANDを与えるべきです」と言っています。意味を明確にすることができるかどうか疑問に思っていました。アイデアはありますが、まだ少しアドバイスが必要だと思います。コードは意図的にごちゃごちゃして提供されていたので、片付けなければなりませんでした。これがクリーンアップされたものです:

// Question2
// This program should give the AND of the inputted numbers.

#include <iostream>

//**Needs namespace statement to directly access cin and cout without using std::
using namespace std;
//**Divided up statements that are running together for better readability
//**Used more spacing in between characters and lines to further increase readability

////void main()
//**Main function should include int as datatype; main is not typically defined as a void function
int main()
{
int i;
int k;

//**Changed spacing to properly enclose entire string
cout << "Enter 0 (false) or 1 (true) for the first value: " << endl;
cin >> i;

cout<< "Enter 0 (false) or 1 (true) for the second value: " << endl;
cin >> k;

//**Spaced out characters and separated couts by lines
//**to help with readability
cout << "AND" << endl;
cout << "k\t| 0\t| 1" << endl;
cout << "---\t| ---\t| ---" << endl;
cout << "0\t| 0\t| 0" << endl;
cout << "1\t| 0\t| 1" << endl;
    if(i==1&k==1)
        cout <<"Result is TRUE" << endl;
    else cout << "Result is FALSE" <<endl;
//**Main function typically includes return statement of 0 to end program execution
return 0; 
}
4

3 に答える 3

3

すべての数値にはバイナリ表現があります。彼らはビットの論理とを求めています。&オペレーターを検索します。

于 2013-11-09T22:53:19.807 に答える
1

'&' is a bitwise and, which means it takes the binary representation of two numbers and compares each bit in the first number against the bit in the same position on the second. If both are 1, the resultant bit in the same position in the output number is 1, otherwise the bit is zero. if (i&k) would have the same result (assuming the input was always 0 or 1), but anyway your if statement compares whether the first bit is 0 or 1, and if both are 1 returns one.

于 2013-11-09T22:55:28.853 に答える
0
the AND gate(output) will be true only if both inputs are true(1)

true if i==1 && k==1
false if i==0 && k==0,i==1 && k==0,i==0 && k==1.
于 2013-11-09T22:59:09.720 に答える