掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ビット単位 (ID:61040)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
このBitFunc()は筆算の考え方を応用して、特定のnビットの値に関して計算しています。 (1)加算される2つの値のそれぞれのnビットの値がbDataAとbDataBで表されています。 (2)下位の桁からの繰り上がりをbDigitUpで表しています。 (3)このbDataAとbDataBとbDigitUpの足し算を行い、この桁の値を*lpbDataCと、 繰り上がりの値*lpbNextDigitUpを求めています。 ここで、もっとも単純にすると、bDataA、bDataB、bDigitUpはそれぞれ、0か1しのいずれかなので、 組み合わせとしては2×2×2の8通りあります。 それぞのれの場合の、*lpbDataCと*lpbNextDigitUpを用意しておき、 BitFunc()の中で、その値を返すのでもOKです。 後は、main()側で一番下位のビットから順番に (1)n番目の桁の値をBitFunc()で計算 (2)その結果をDataCに反映 (3)BitFunc()で求まった繰り上がりを次の桁の計算に利用 を桁数分(ビット数分)繰り返しています。 ※一番下位の計算においては、下位桁からの繰り上がりはないので、初期値として*lpbNextDigitUpをfalse(0)にしておく。 ※結果は最初に0で初期化しておくと、各桁の計算結果を“|=”で反映させることができる。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.