C を使用して、指定された 2 進数の 2 の補数を求めます。

PHPz
リリース: 2023-09-05 15:21:06
転載
1168 人が閲覧しました

C を使用して、指定された 2 進数の 2 の補数を求めます。

以下の例を考えてみましょう -

Example

次のようにを入力してください:

バイナリを入力してください番号 : 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  #include main(){ char str[32],strdp[32]; int mask,i; printf("Enter a binary number:"); scanf("%s",str); strcpy(strdp,str); for(i=0;i

",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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!