• ベストアンサー

ある数を2進にしたときの指定する桁が0か1かの判別

ある数(10進整数・ある数≧0)を2進数にしたとき指定する桁(右から)が0か1かを判別する式は ある数/(2^(指定する桁-1)) の整数部分が 奇数であるとき1 偶数であるとき0 で合っていますか? プログラムに組み込みます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

OKだと思います。 ある数=a_n・2^n+a_(n-1)・2^(n-1)+…+a1・2^1+a0・2^0 指定した桁xをn-1≧x≧0とし、 ある数≡a_x・2^x+a_(x-1)・2^(x-1)+…+a1・2^1+a0・2^0 (mod 2^(x+1)) a_i=0or1であるので、αを正の整数として2^(x+α)は2^xで割ると偶数になる。 また、2^(x-α)とした場合は2^x以下であるため、商の整数部分は0。 したがって、a_xの1か0かが、ある数を2^(x-1)で割った商を2を法とした場合を考えたもの、つまり奇数か偶数かで判定すれば良い。

ulti-star
質問者

お礼

回答ありがとうございました

その他の回答 (3)

回答No.4

確かにNo.3さんの言う通り。 無用な計算増やすだけだと思います。 全体のバランスですね。 あまり扱う数が大きいと質問文の方法はおすすめできませんね。

ulti-star
質問者

お礼

回答ありがとうございました

  • alice_44
  • ベストアンサー率44% (2109/4759)
回答No.3

合ってるけど、「プログラムに組み込む」のなら、 たいていの言語がビット演算をサポートするから、 (対象の数) and (1 を (桁数)-1 ビット左シフト) の値が 0 ならば、その桁は 0、 値が 0 でなければ、その桁は 1 とするほうが、コストが軽いんじゃないの? いや、この回答はカテゴリー違いで、 数学カテとしては、A No.2 が正しいんだけどさ。

ulti-star
質問者

お礼

回答ありがとうございました

回答No.2

すみません、訂正です。 ある数=a_(n-1)・2^(n-1)+a_(n-2)・2^(n-2)+…+a1・2^1+a0・2^0 です。

ulti-star
質問者

お礼

回答ありがとうございました

関連するQ&A

  • 16進数の偶数奇数の判別について

    ウィキペディアによると、n 進法(ただしnは正の偶数)においてある整数が偶数であるかどうかは、1の位(n0 の位)を見るだけで判別できる。 と書いてありますが、何が存在すれば偶数奇数が判るのでしょうか。 また16進数の交換を偶数と奇数で分け、対象のもの同士で交換したいのですが、 その例が、 01なら0f、 2なら0e らしいのですが、なぜそうなるのでしょう? 00なら0fの様な気がするのですが...

  • 数の各桁が偶数か奇数かで素数かどうか推測可能ですか

    逆に、素数の各桁を偶数か奇数かで見た場合、素数の場合にはこういう特徴があるというようなことはないのでしょうか。たとえば偶数の総数と奇数の総数との関係や偶数と奇数の並び方などで。

  • 「3桁の自然数」 →0は自然数?

    百の位、十の位、一の位のうち、いずれかは偶数であるような3桁の自然数の中で、各位の数の和が奇数であるものは幾つあるか。 模範解答 百の位、十の位、一の位のうち、1つの位だけが奇数で、他の2つの位は偶数である。 そのような場合には、次の[1]~[3]がある。 [1] 一の位が奇数、他の位が偶数のものについて 百の位は2, 4, 6, 8の4通り 十の位は0, 2, 4, 6, 8の5通り     ←0??? 一の位は1, 3, 5, 7. 9の5通り よって、4×5×5=100個 [2]  : ・・・と続くのですが、 こういう類の問題で「3桁の自然数」と言った場合、 その範囲は100~999ですか? 最上位の位以外なら0が含まれていてもいいんですか? 自然数の定義は「0を含まない」ですよね? ←確認 ですから、「3桁の自然数」と言った場合、 それぞれの位は1~9までの数で構成されるべきじゃないんですか? 特に今回は、それぞれの位が偶数か奇数かという話をしているので 各位も自然数なのかと思いました。 100や510が自然数なのは承知しています。 でも、この問題の書き方が曖昧に思えてなりません。 どうか私を納得させて次から間違えないようにさせて下さい。お願いします。

  • 数学の質問です。

    質問です。 4ケタの整数で和が18 積が112の偶数。 かつその4ケタのうち偶数2つ 奇数2つの数って何がありますか?? 正確に答えまでは出ないと思うんですけど、数の組み合わせをどなたか教えてください!!

  • 素数、偶数、奇数、倍数を求める。

    整数n1と整数n2に適当な値を代入して、n1からn2までの整数を発生し、発生した個々の整数について調べたいのです。 結果は 10 は偶数で 5 の倍数です。 11 は素数です。 12 は偶数で 6 の倍数です。 13 は素数です。 14 は偶数で 7 の倍数です。 15 は奇数で 5 の倍数です。 16 は偶数で 8 の倍数です。 17 は素数です。 18 は偶数で 9 の倍数です。 19 は素数です。 20 は偶数で 10 の倍数です。 となりたいのです。 教えてくださいお願いします。

  • 核スピン量子数の推定方法について教えてください

    核スピン量子数の推定方法について教えてください。 核スピン量子数が 質量数が奇数、原子番号が奇数or偶数のとき半整数 質量数が偶数、原子番号が偶数のとき0 質量数が偶数、原子番号が奇数のとき整数 となるのはわかるのですが 具体的な計算方法がわかりません。 教えてくだされば助かります。

  • 大きさ10の配列に次の10個の整数が格納されている。

    大きさ10の配列に次の10個の整数が格納されている。   2、-8、5、-4,6,5,7、-3、-9,1 奇数、偶数、負の数がそれぞれいくつあるかを数え表示するプログラムはどのように書けばいいですか、教えてください。 奇数=6 偶数=4 負=4 と表示されるようにしたいです。

  • スピン量子数について・・・

    陽子数、中性子数の奇数・偶数の組み合わせでスピン量子数が半整数比か整数に決まるのですが、なぜ1/2だけでなく3/2、5/3、3になったりするのですか?これには何かの規則性があるのか、決まった物なのかが分かりません。なのでどなたか教えてください。よろしくお願いします。

  • 順列

    解きかたがぐちゃぐちゃになってしまい 質問させていただきました。 (1)1、2、3、4,5の五枚のカードがそれぞれ一枚ずつある。 (1)3けたの整数は何通りか (2)3けたの奇数は何通りか (3)3けたの偶数は何通りか (2)0、1、2、3、4、5の六枚のカードがそれぞれ一枚ずつある。 (1)3けたの整数は何通りか (2)3ケタの奇数は何通りか (3)3ケタの偶数は何通りか 問題集などを見るとカードの枚数や取り出す枚数によって解きかたが 変わるのでどう解いたらいいのか全然分からなくなりました・・・。 よろしくおねがいします!

  • 10^210/(10^10+3)の整数部分の桁数と一桁目の数を求めよ。

    10^210/(10^10+3)の整数部分の桁数と一桁目の数を求めよ。 10^210/(10^10+3)=(10^210+3^20-3^20)/(10^10+3) =(10^210+3^20)/(10^10+3)-(3^20)/(10^10+3) と変形して考えたら、 桁数は201けた、一桁目は0になりました。 解答がないので、正解がわかりません。 これでよいでしょうか。