2013-11-09 42 views
0

對於我的C++編程類中的任務,給了我下面的代碼。該任務只是說:「這個程序應該給以下數字的AND」想知道是否可以澄清意思。我有一個想法,但我認爲我仍然需要一些建議。代碼被提供了混亂的目的,我不得不澄清。這裏是清理:這個程序應該給以下數字的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; 
} 
+0

「使用命名空間標準;」包含在課堂練習中讓我感到畏縮。 –

回答

3

每個數字都有一個二進制表示。他們要求邏輯和位。查看&運營商。

1

'&'是一個按位和,這意味着它採用兩個數字的二進制表示並將第一個數字中的每個位與第二個數字中的相同位置中的位進行比較。如果兩者均爲1,則輸出編號中相同位置的結果位爲1,否則該位爲零。 if (i&k)會有相同的結果(假設輸入始終爲0或1),但無論如何,if語句會比較第一位是0還是1,如果兩者都是1,則返回1。

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.