코딩테스트

[C++] 패리티 비트(Parity Bit)

뇨롱 2021. 6. 27. 00:44

숙제 4 (패리티 비트)

31-비트로 만들어진 데이터와 가장 높은 자리에 있는 1개의 패리티 비트를 포함하는 32-비트의 데이터를 송신하는 송신 측에서 짝수 패리티 기법을 이용하여 패리티를 정하여 송신할 데이터를 만드프로그램을 작성하시오.

#include<iostream>
using namespace std;

int main(){
	unsigned int num=0x00;
	cin>>num;
	int tmp=num;
	int count=0x00;
	while(1){
		if(tmp%2==1) count++;
		tmp/=2;
		if(tmp==0) break;
	}

	if(count%2==1) num|=0x80000000;
	cout<<num<<endl;
	return 0;
}