以下の例を考えてみましょう -
次のように を入力してください:
バイナリを入力してください番号 : 10010001
出力 は次のとおりです:
1 10010001 の補数は 01101110
2 10010001 の補数は 01101111
指定された 2 進数の 2 の補数を見つけるアルゴリズムを参照してください。
ステップ 1 - 始めましょう。
ステップ 2 - 実行時に 2 進数を読み取ります。
ステップ 3 - 2 進数を 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 ~ 0 の場合、
ステップ 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 -終了 if
ステップ 7.2 - 終了 if
ステップ 8 - 2 の補数を出力します。
ステップ 9 - 停止します。
次は、指定された2進数の2の補数を見つけるためのCプログラムです -
ライブデモ#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); }出力上記のプログラムを実行すると、次の結果が生成されます-
Enter a binary number:11001110 1's complement of 11001110 is 00110001 2's complement of 11001110 is 00110010
以上がC を使用して、指定された 2 進数の 2 の補数を求めます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。