問題タブ [gray-code]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - アセンブリ 8086: 8 ビットの 2 進数を同等のグレイ数に変換していますか?
問題:
次のアルゴリズムを使用して、キーボードから入力された 8 ビットの 2 進数を同等のグレイ コード 2 進数に変換するプログラムを作成します。
アセンブリ (8086、クラスで必要) を学習していますが、これを行う方法がわかりません。
キーボードから受け取った各文字 (1 または 0) を変換しますか? それとも、8 ビットの 2 進数全体を読み込んでループし、変換しながら進めるのでしょうか?
私は Perl/Java 出身なので、アセンブリでこれがどのように機能するかを視覚化するのは少し大変です。また、上記のアルゴリズムでシンボルが何であるかわかりませんか?
あなたの助けと批評をありがとう!
c# - .NET のグレー コード
.NET フレームワークのどこかに組み込みのグレイ コードデータ型はありますか? または、グレイとバイナリの間の変換ユーティリティですか? 自分でもできますが、車輪がすでに発明されている場合は...
math - グレイコードは2つ以外の塩基に存在しますか?
好奇心の問題ですが、グレイコードはベース2以外のベースに対して定義されていますか?
基数3でカウントしようとしましたが、一度に1つのトリットのみを変更することに注意して、連続する値を書き込みました。26(3 ** 3-1)までのすべての値を列挙することができましたが、機能しているようです。
私が見ることができる唯一の問題は、ゼロにループバックすると3つのトリットすべてが変化することです。しかし、これは奇数ベースにのみ当てはまります。偶数ベースを使用する場合、ゼロにループバックすると、2進数のように1桁しか変更されません。
10進数でも、他の基数に拡張できると思います。これは、10進数で数えるときに別の順序につながる可能性があります... :-)
さて、質問ですが、誰か聞いたことがありますか?そのためのアプリケーションはありますか?それとも数学的な狂乱ですか?
algorithm - コードゴルフ:グレイコード
チャレンジ
nビットのグレイコードを出力する文字数で最短のプログラム。標準入力から取得される (ユーザーの提案により)n
よりも小さい任意の数値になります。グレーコードは、例のように標準出力に出力されます。1000
100000
注:プログラムが適切な時間でグレーコードを出力するとは思わない(n=100000
やり過ぎです)。私はそれが印刷を開始することを期待しています。
例
入力:
期待される出力:
algorithm - n番目のグレイコード
n 番目のグレイ コードを計算する式は次のとおりです。
私はそれを次のようにエンコードしました:
誰かが上記の式がどのように機能するか、またはおそらくその導出を説明できますか?
algorithm - 一定時間内にグレイ コードで変化する次のビットを見つけるにはどうすればよいですか?
私はいくつかの出力ラインに N から M のデコーダーを持つ小さな 8 ビット プロセッサを持っています。出力への唯一のインターフェイスは状態変更であり、リードバックはありません。
デバイスは、発生するイベントを迅速に (ただしランダムに) カウントし、このカウントを「単一ビット変更」コードとして別のデバイスに提供する必要があります。出力ピンは別のデバイスによって並行して読み取られ、他のデバイスが決定するのと同じくらい速くまたは控えめに読み取られる可能性があるため、カウントが必要です。
標準の Binary Reflective Gray コードを使用する必要はありません。単一ビット変更コードを使用できます。
ただし、次のビットを追跡して効率的に変更できるようにしたいと考えています。
私は「LowestBitSet」命令を持っていません.4つの8ビットレジスタに設定された最下位ビットを見つけるのはサイクルを消費するので、この「一般的な」アプローチを使用することはできません:
できるだけ少ないメモリとレジスタでこれを計算したいのですが、大きなルックアップ テーブルにはメモリが制限されすぎています。サイクル タイムは、より重要な要素です。
アルゴリズムに関する提案はありますか?
c++ - C++ で 2 進数の文字配列をグレイ コードのカウンターに変換する
2 進数の char 配列をグレイ コードに変換する方法はありますか。たとえば、次のコードがあります。
私が望むのは、この binaryNum をグレイ コードに変換することです。つまり、一度に 1 ビットずつ変更します。誰かがコードを手伝ってくれますか? たとえば、char binaryNum[10] == 101101 があり、それをグレー コードに変換したい、つまり、一度に 1 ビットだけ変更したい: 101100 101110 101111 このようなもの..
c - グレイコードからバイナリへの変換
数値のグレイコードが与えられた場合、その数値のバイナリコードを見つけます。
グレイコードは、2つの連続する値が1ビットだけ異なる2進数システムです。
たとえば、2ビットのグレイコードは次のとおりです。0-00 1-01 2-11 3-10
バイナリは次のとおりです。
0-00 1-01 2-10 3-11
数値のグレイコードをバイナリコードに変換するアルゴリズムを提供します。
たとえば、入力は11です。期待される出力は10です。
c++ - グレイコードからバイナリコードへの変換
そこで、7 ビットのグレイ コードを対応する 7 ビットのバイナリ コードに変換する関数を作成しようとしています。
変換方法は次のとおりです-
- グレー値ビット ---- MS ビット > (G6) G5 G4 G3 G2 G1 G0 *
バイナリ値ビット -- MS ビット > (B6) B5 B4 B3 B2 B1 B0 *
B6 = G6 // MS ビットは常に同じ
- B5 = B6 ^ G5 // ビットを排他的「OR」して、7 ビットのバイナリ値を構築します
- B4 = B5 ^ G4
- B3 = B4 ^ G3
- B2 = B3 ^ G2
- B1 = B2 ^ G1
- B0 = B1 ^ G0
これまでの私の機能は次のとおりです-
ループの実行ごとに必要な特定のビットにアクセスする方法を見つける必要があります...どうにかして配列でできるようにビットにアクセスする必要があります...
アイデア/ポインタはありますか?ありがとう :)