Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

이진수의 1과 2의 보수?

<시간/>

이진수는 2진법으로 표현됩니다. '0'과 '1' 두 자리 숫자만 사용합니다. 이진수의 각 숫자는 비트입니다. .

샘플 이진수 - 0100010111

1의 보수

이진수의 1의 보수는 이진수의 자릿수를 반대로 하여 얻습니다. 즉 1을 0으로, 0을 1로 변환합니다.

1’s Complement of 101100 = 010011

2의 보수

이진수의 2의 보수는 이진수의 1의 보수에 1을 더하여 얻습니다(예:1의 보수 + 1).

2’s complement of 101101 is 010011.

예시 코드

1과 2의 보수를 구하는 코드 -

#include <iostream>
#include<string.h>
using namespace std;
int main() {
   char binary[10] = "01001011";
   cout<<“Binary number is ”<<binary;
   //once complement....
   int length = strlen(binary);
   for(int i=0;i<length;i++) {
      if(binary[i] == '0') {
         binary[i]= '1';
      } else
         binary[i] = '0';
   }
   cout<<“One’s Complement is ”<<binary<<endl;
   // cout<<binary[length-1];
   for(int i = length-1; i>=0; i--) {
      // cout<<binary[i];
      if(binary[i] == '0') {
         binary[i] = '1';
         //cout<<binary[i];
         break;
      } else {
         binary[i] = '0';
      }
   }
   cout<<“Two’s complement is ”<<binary;
   return 0;
}

출력

Binary number is 01001011
One’s complement is 10110100
Two’s complement is 10110101