OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

グレイコードの整数への変換方法 御存知ないですか?

  • 暇なときにでも
  • 質問No.191621
  • 閲覧数1779
  • ありがとう数2
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 100% (1/1)

グレイコードを整数へ変換したいと思っているのですが、
変換方法がわかりません。どなたか御存知ないでしょうか?

例えば 2進法の数字 01101を 整数に変換するには、
0×2^(4)+1×2^(3)+1×2^(2)+0×2^(1)+1*2^(0)とすれば
整数 13を得ることができます。

グレイコードで表記された 01101を整数に変換するには
どのような計算をすれば よいのかが知りたいことです。
できれば、01101に限らず 2進法の10進法への変換のように一般的な
方法があればと思っています。

御存知なら お助け下さい。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル8

ベストアンサー率 33% (10/30)

ビット列をan,an-1,,,a0として
グレイコードの数を(an,an-1,,,a0)gと表記することにします。
またビット列から{0,1}への関数parityを
parity(x)=0 (xの中の1の数が偶数個)
parity(x)=1 (xの中の1の数が奇数個)
と定義します。

グレイコードの整数への変換は次のように求められます。

(an,an-1,,,a0)g=Σ_{i=0,,,n}parity(an,,,ai)*2^i

例えば(01101)gであれば
2^4*parity(0)+
2^3*parity(01)+
2^2*parity(011)+
2^1*parity(0110)+
2^0*parity(01101)
=2^3+1=9
となります。

ところで整数へ変換したいとだけありますがちょっと言葉が足りないように思います。
とにかく何でもいいから整数へマッピングしたいのであれば2進法のマッピング
を流用したっていいわけですから。どのような性質を満たしてマッピングしたいのか
きちんと言ったほうが良いと思います。
私は勝手に予想して回答しましたがあなたの望んだものだったでしょうか?
お礼コメント
Richard-B

お礼率 100% (1/1)

nagata様 回答ありがとうございました。
言葉が足りなかった点については、お詫び致します。
私の方も、グレイコードの詳細について、まだあまり知識がなかつたので
このような不充分な質問の形になりました。
回答頂いた内容で、十分です。ありがとうございました。
投稿日時 - 2001-12-28 15:04:11
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ