• ベストアンサー

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

グレイコードを整数へ変換したいと思っているのですが、 変換方法がわかりません。どなたか御存知ないでしょうか? 例えば 2進法の数字 01101を 整数に変換するには、 0×2^(4)+1×2^(3)+1×2^(2)+0×2^(1)+1*2^(0)とすれば 整数 13を得ることができます。 グレイコードで表記された 01101を整数に変換するには どのような計算をすれば よいのかが知りたいことです。 できれば、01101に限らず 2進法の10進法への変換のように一般的な 方法があればと思っています。 御存知なら お助け下さい。

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

  • ベストアンサー
  • nagata
  • ベストアンサー率33% (10/30)
回答No.1

ビット列を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
質問者

お礼

nagata様 回答ありがとうございました。 言葉が足りなかった点については、お詫び致します。 私の方も、グレイコードの詳細について、まだあまり知識がなかつたので このような不充分な質問の形になりました。 回答頂いた内容で、十分です。ありがとうございました。

関連するQ&A

  • グレイコードの変換

    グレイコードを以下のように、バイナリーコードに変換する処理をVisual C++で作ろうとしています。 Gray code  Binary code 0        0 1        1 2        3 255       170 (テキストボックス1に打ち込んだGray codeを変換してテキストボックス2に表示するようにしたい) Gray codeを2進数表記に変換してからBinary codeに変換するのだと思いますが、Gray codeを2進数表記に変換する処理をどのように書いたらいいのかが、ちゃんとわかってはいないので、ぜひ回答をお願いします。

  • エクセルの整数表示

    大変お手数ですが下記お願いします。 ビスタに搭載されているエクセルについて、知り合いが困っているので、分かりにくい質問内容だと思いますが、よろしくお願い致します。 あるセル内の数字にM6×H6×F6÷1000という計算式をいれて、 2099という数字を出しております。これをさらに千で割って、整数表示の2という数字を導きたいと思っています。整数表示のやり方は、セルの書式設定でできると思うのですが、この2099という数字を、計算式を使わず(2099を計算式で1000で割るのではなく)に、2.099という数字に変換することはなんらかの設定などで可能でしょうか。 お手数ですがよろしくお願い致します。

  • JISコードをシフトJISコードに変換する方法

    紙とえんぴつを使ってJISコードをシフトJISコードに変換する方法を教えてください。 たしか16進数の変換などを使って出来ると聞いたことがあります。 一文字の漢字だけで良いんです。 例えば『高』という漢字のJISコード「3962」をシフトJISコード「8D62」に変換したいというわけです。 2進数や16進数の計算の知識だけはあります。よろしくお願いします。

  • 整数って・・・

    ちょっと確認させてください。 整数って、小数点の付いていない数字のことを言うんですよね? 例えば・・・ エクセルで関数を使い、平均値を計算しました。 その数字が「19.6369」となった場合、=ROUND(AVERAGE(A**:A**),0)というような関数で小数点以下を表示させないようにして、数字が「20」でいいのでしょうか? 問題に整数として表示させなさいとあったのですけど、分かる方、お願いします。

  • カラー画像をグレー化する方法

    カラー画像をグレー画像に変換する方法には どんなものがあるのでしょうか? 一般に使われている方法以外にも色々あるようでしたら 教えてください。

  • 4ビットの符号付整数

    4ビットの符号付整数0101が表す整数の10進法表記は?

  • n進法の変換

    数字の0~9および英字のA~Z(OおよびIをのぞく)の34文字を使用した34進法の4桁の数字を10進法への変換方法、およびその逆(10進法→34進法)の変換方法をエクセルの計算式またはマクロを使用し作成する方法を教えてください。

  • シーケンサでアスキーコードを変換

    初心者です。 シーケンサ(三菱Qシリーズ)でアスキーコードで測定値を受信したとき、 測定値を数字として計算できるように変換するにはどうすれば良いですか? 何の命令後を使えばよいのでしょうか? D0~D2;30、31、32、33、34、35 → D10;12345      

  • 分数×整数の計算について教えてください

    基本的なことで申し訳ありません。 35/17 × 17 = 35*17/17 = 35 35/17 × 17 = 35/17(2.05882352941176)× 17 = 35 エクセルで上記の計算をすると両方とも35になります。 かけてから割る場合は35になることはわかるのですが、 割ってからかけた時、手で計算すると、 34.99999999999992になるにもかかわらず、 どうしてエクセルではどちらも35となるのでしょうか? また、エクセルでこの数字に限らず、分数×整数の計算をすると、どちらの方法でも小数点以下までまったく同じ数字になるのですが、割ってからかけるか、かけてから割るか、どちらが正しいのでしょうか?        

  • アスキーコードから数字に変換

    アスキーコードで送られてきた4つのデータを数字に変換する方法を教えてください。 4つのデータはいっぺんに送られてくるのでアスキーコード文字数は16です。(ひとつのデータは4文字です) よろしくお願いします。