아래 예제를 고려하세요.
입력 은 다음과 같습니다.
입력 이진수: 10010001
출력 은 다음과 같습니다.
1의 보수 10010001은 0110111 0
2 대 10010001의 보수는 01101111
주어진 이진수의 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단계 - 중지합니다.
다음은 주어진 이진수의 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's complement */{ if(str[i]=='1') str[i]='0'; else str[i]='1'; } printf("1\'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]=='1'){ str[i]='0'; mask=1; } else{ str[i]='1'; mask=0; } } } printf("2\'s complement of %s is %s",strdp,str); }
위 프로그램을 실행하면 다음과 같은 결과가 나옵니다 -
으으으으위 내용은 C를 사용하여 주어진 이진수의 2의 보수 찾기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!