>  기사  >  백엔드 개발  >  C를 사용하여 주어진 이진수의 2의 보수 찾기

C를 사용하여 주어진 이진수의 2의 보수 찾기

PHPz
PHPz앞으로
2023-09-05 15:21:061174검색

C를 사용하여 주어진 이진수의 2의 보수 찾기

아래 예제를 고려하세요.

예제

입력 은 다음과 같습니다.

입력 이진수: 10010001

출력 은 다음과 같습니다.

1의 보수 10010001은 0110111 0

2 대 10010001의 보수는 01101111

Algorithm

주어진 이진수의 2'c 보수를 찾는 알고리즘을 참조하세요.

1단계 - 시작하세요.

2단계 - 런타임에 이진수를 읽습니다.

3단계 - 이진수를 strdp에 복사합니다.

4단계 - len: = strlen(str)

5단계 - i = 0에서 len-1로 실행

5.1단계 - str[i] == '1'이면

5.1.1단계 - str [i] == '0'

5.2단계 - 그렇지 않으면

5.2.1단계 - str[i] == '1'

5.3단계 - i: = i+1

5.3단계 - i: = i +1

p>

6단계 - 마스크: = 1

7단계 - i의 경우: = len-1 to 0 do

7.1단계 - 마스크 == 1이면 p>

7.1단계 .1 − str[인 경우 i] == '1' then

            7.1.1.1 단계 − str[i]: = '0'

                7.1.1.2 단계 − 마스크: = 1

        7.1.2 단계 − else

7.1.2.1 단계 − str[i]: = '1'

7.1.2.2단계 - 마스크: = 0

7.1.3단계 - End if

7.2단계 - End if

8단계 - 2의 보수를 인쇄합니다.

9단계 - 중지합니다.

Program

다음은 주어진 이진수의 2'c 보수를 찾는 C 프로그램입니다 -

Live Demonstration

#include <string.h>
#include<stdio.h>
main(){
   char str[32],strdp[32];
   int mask,i;
   printf("Enter a binary number:");
   scanf("%s",str);
   strcpy(strdp,str);
   for(i=0;i<strlen(str);i++) /* computing 1&#39;s complement */{
      if(str[i]==&#39;1&#39;)
         str[i]=&#39;0&#39;;
      else
         str[i]=&#39;1&#39;;
   }
   printf("1\&#39;s complement of %s is %s</p><p>",strdp,str);
   mask=1;
   for(i=strlen(str)-1;i>=0;i--){
      if(mask==1){
         if(str[i]==&#39;1&#39;){
            str[i]=&#39;0&#39;;
            mask=1;
         }
         else{
            str[i]=&#39;1&#39;;
            mask=0;
         }
      }
   }
   printf("2\&#39;s complement of %s is %s",strdp,str);
}

Output

위 프로그램을 실행하면 다음과 같은 결과가 나옵니다 -

으으으으

위 내용은 C를 사용하여 주어진 이진수의 2의 보수 찾기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제