問題タブ [low-level-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.

0 投票する
4 に答える
846 参照

c++ - 2文字を使用してASCII(Hex)番号を形成する方法は?

私はチャーを持っていbyte[0] = '1' (H'0x31)ますbyte[1] = 'C'(H'0x43)

1 つ以上のバッファーを使用して、さらにバフしますchar hex_buff[0]。これに 16 進数のコンテンツが必要ですhex_buff[0] = 0x1C(つまり、バイト [0] とバイト [1] の組み合わせ)。

以下のコードを使用していましたが、コードが16進値0〜9に対してのみ有効であることに気付きました

hex_buff[0] = s_nibble1 | s_nibble2;// ここでは0x1C代わりに0x13

0 投票する
4 に答える
2719 参照

c++ - 再解釈キャストとCスタイルキャストのC ++の違い

コード:

出力:

同じこと!

2 つのキャスト方法の違いは何だろうか。また、(例を使用して)static_cast、dynamic_cast、および他のタイプのキャストの違いを指定できれば(つまり、できるだけ低レベルでアセンブリ言語にできるだけ近い状態で)。

ありがとう。

reinterpret_cast が int ポインターに keyStr[29] のアドレスを割り当てることを上記の例から知っている PS を読んでください。

つまり、低レベルの見通しでは、元のデータを変更しないため、reinterpret_cast はまったく危険ではありません。

他のキャスト メソッドが低レベルでどのように動作するかを知りたかったのです。したがって、たとえば、オブジェクトは、低レベルの方法では、アドレスを保持する単なる変数です。そして、そのオブジェクトの型は、コンパイラがそのアドレスを解釈し、それをオフセットする方法です(これはまさに私が興味のないものです。アセンブリでは、その変数が値、ポインター、またはオブジェクト (つまり、別のポインター) )。まったく同じかもしれないもう 1 つのことは、int と int* または unsigned int と int の違いです。4 つの宣言はすべて同じアセンブリ命令を生成します。( push value ) または (sub esp-(length of int) && mov esp, value) これで質問が明確になり、「低レベルコード」および「アセンブリ」とタグ付けした理由が明確になることを願っています

PSこのプログラムでは、移植性やその他の高レベルのものは気にしません。私はできるだけ低レベルで、できるだけアセンブリ言語に近づけようとしています。つまり、このプログラムでは、メモリは単なるメモリ (つまり 0 と 1 ビット) であり、型は重要ではありません (たとえば、mem アドレス: 0x123 が「int」型か「float」型かは気にしません。 "データ")

0 投票する
1 に答える
65 参照

java - Java:サブクラスに変数を設定する方法は?

これは課題ではありませんが、講義のスライドの 1 つでは明確に説明されていませんでした。同様のコードを自分で作成しようとすると、問題が発生します。

サブクラスにある変数を設定する方法がわかりません。

これまでの私のテストコードは次のとおりです。

実装クラス:

パブリック クラス ハウス {

}

スーパークラス:

}

サブクラス:

}

コードを実行しようとすると、型クラスの setType() メソッドにデータを挿入しようとすると、エラーが発生します。誰かが私が台無しにしている場所を教えてもらえますか? ありがとう!

0 投票する
0 に答える
20 参照

assembly - edx の以前の値を使用したアセンブリ DIV 操作

私はアセンブリが初めてで、学習している本にこの例がありました

そして、それらは私が得ている結果 です

* EDXの最終値が0x47である理由を誰か説明してもらえますか?
* EDXに0hを入力すると、 EAXの最終値が0x2になるのはなぜですか? *基本的に分割がEAXEBXの間にある場合、 EDXは分割結果にどのように影響しますか。 ※ EDXはディビジョンレストを収納するためだけのものではないですか?

前もって感謝します :)

0 投票する
0 に答える
172 参照

assembly - Mips 行列乗算の間違った答え

この 13 時間、このプログラムを完了しようとしてきました。私はすべてを試しましたが、何もうまくいかないようです。何らかの理由で、ユーザーから 4x4 行列の入力を取得して乗算すると機能します。既に初期化した 2 つの 8x8 行列の積を計算しようとすると、間違った答えが返されます。

初期化された行列;

array1: .byte 1,3,4,7,8,8,9,4,3,2,3,32,3,4,5,6,7,8,9,8,6,4,5,4,4,3,5,6,7,7,8,7,5,4,3,4,5,6,5,4,5,4,5,6,7,8,8,9,5,3,3,2,4,6,7,8,3,2,2,1,3,4,5,6,7,7,5,4,3,4,5,4,4,3,3,4,3,3,4,3,3,34,5,5,6,7,7,8,6,5,4,4,3,3,5,6,7 array2: .byte 0,4,4,7,6,6,4,4,4,7,4,7,4,4,7,6,7,6,4,6,6,4,0,4,4,4,7,6,7,7,6,7,7,4,7,4,7,6,7,4,7,4,6,6,7,6,6,4,7,4,4,7,4,6,7,7,4,7,7,4,4,4,7,6,7,7,7,4,4,4,7,4,44,4,4,4,7,4,4,4,4,44,7,7,6,7,7,6,7,7,4,4,4,4,7,6,7

それらを乗算するコード。

0 投票する
0 に答える
30 参照

cpu - CPUの観点から見たコンピュータプログラム

これは少しナイーブに聞こえるかもしれませんが、私の頭の中で質問に対する適切な答えを見つけることができません。

10 種類のプログラミング言語で実装されているアルゴリズム X があるとします。すべてのプログラムのブートストラップ段階の後、各プログラムはアルゴリズムを何度も実行します。私の質問は、それらがすべて同じ CPU で実行される場合、ハードウェア レベルとの違いはありますか?

私が理解しているのは、各 CPU のハードウェア リソース (レジスタなど) のセットが限られているということです。したがって、コア アルゴリズムの実行は、「フェッチ - デコード - 実行」サイクルと同様の (同一ではないにしても) パターンに従う必要があります。

0 投票する
2 に答える
104 参照

c - もし (n!=0) n=0; v/sn=0; どちらがより効率的で、その理由は何ですか?

高レベルのプログラマーとしてプログラムを入力している間、n = 0;より効率的できれいに見えます。

しかし、実際には?n = 0;よりも効率的です。if (n != 0) n = 0;

  1. いつnになる可能性が高い0です。

  2. いつnになる可能性は低い0です。

  3. いつnが絶対に不確実です。

言語: C (C90)

コンパイラ: Borland の Turbo C++

最小限の再現可能なコード

注: 上記のコードは参照用にのみ言及しています。その流れに乗らないでください。

上記の言語/標準/コンパイラに慣れていない場合は、希望する言語/標準/コンパイラで上記の 3 つのケースを自由に説明してください。