그래서 이진 값을 입력으로 받아 그레이 코드로 변환하거나 그 반대로 변환하는 프로그램을 작성하고 싶습니다.이진 코드와 그 반대로
#include <iostream>
using namespace std;
int main()
{
int Choice;
bool g0,g1,g2,g3,b0,b1,b2,b3;
cout<<"For Binary To Gray Code Enter 1." << endl <<"For Gray Code to Binary Enter 2." << endl;;
cin>>Choice;
if(Choice==1)
{
cout<<"Enter the Binary Bits." << endl;
cin>>b0>>b1>>b2>>b3;
cout<<"Orginal Binary Form: "<<b3 <<b2 <<b1 <<b0 << endl;
g3=b3;
g2=b3^b2;
g1=b2^b1;
g0=b1^b0;
cout<<"Converted Gray Code Form: "<<g3 <<g2 <<g1 <<g0 << endl;
}
else if(Choice==2)
{
cout<<"Enter The Gray Code Bits." << endl;
cin>>g0>>>g1>>g2>>g3;
cout<<"Original Gray Code Form: "<<g3 <<g2 <<g1 <<g0 << endl;
b3=g3;
b2=b3^g2;
b1=b2^g1;
b0=b1^g0;
cout<<"Converted Binary Form: "<<b3 <<b2 <<b1 <<b0 << endl;
}
return 0;
}
지금이 4 개 비트를 위해 작동하지만
을 내가 런타임시 사용자가 입력 한 바이너리/그레이 코드의 크기를 결정 뭔가를 원하는 : 여기
내가 처음 쓴거야 .저는 약간의 연구를했는데 그러한 경우 벡터 사용에 대해 알아 냈습니다. 그러나 대학에서 우리는 C++을 시작 했으므로 벡터 나 배열에 익숙하지 않습니다. 그것을 성취하는데 사용할 수있는 것이 있습니까? 그렇지 않다면, 벡터가 벡터에 어떻게 사용될 수 있는지 말해 줄 수 있습니까?
두 번째로 공백없이 한 줄에 입력하고 싶습니다.
예 :
1011
보다는1 0 1 1
또는 별도의 라인에서 각각의 비트에 대한 입력을 가지고.이제 나는 아뇨를 알 수 없을 것입니다. XOR 연산을 수행하는 데 사용 된 비트 공식도 변경 될 수 있습니다. 바이너리와 그레이 코드
bool
변수를 선언 할 수 있습니까? 그리고 어떻게 든 단순한 명령문을 사용하는 개별 비트 대신 이러한 변수에 대해 XOR 연산을 수행합니까?
참고 : 'std :: string const'를 'Gray2Binary' 함수는 무엇입니까? 왜 속성을 괴롭 히 느냐? –
@Matthiu : 맞습니다. const 문자열을 전달하면 반복문에 문자열 반복자를 사용하는 것이 더 낫습니다. 원래 코드는 "단순"으로 보였고 작업을 위해 너무 많은 것을 던지지 않으려했습니다. – Exceptyon
컴파일 할 때 오류가 발생하는 이유는 무엇입니까? – user2299599