私は自分のバイトコードと仮想マシン(.NET上)を書いていますが、理解できないことの1つは、バイトコードに文字列を埋め込む方法です。今、私はそれをどのようにすべきかというアイデアはありますか?
2 に答える
1
どうやらあなたはあなた自身のバイトコードを定義しているようです。これは.NETCILの構文/文法とは何の関係もありませんよね?
もしそうなら、そしてあなたが文字列をどのようにエンコードするか(ジャンプ、ループなどの他の命令とは対照的に)に関心があるなら、あなたはそれのためにあなた自身の「命令」を発明することができます。
たとえば、16進コード「01xx」は、xxバイト(0〜255)を含む文字列の場合です。次に、言語インタプリタは、この文字列をスタック(または任意の場所)に格納し、バイトコードストリームのxxバイト下にある次のバイトコードをデコードするように指示されます。
バイトコード用のストレージに文字データと数値データを混在させる方法が気になる場合は、詳細をお知らせください。誰かがお手伝いできるかもしれません...
于 2009-09-19T05:31:44.703 に答える
0
数値を配列に格納できる場合は、ASCIIデータを同じ配列に格納できます。クラスとしての文字列の概念を無視すると、単純な文字列はとにかく単なる文字配列です。Cでは、値が0のバイトは文字列の終わりを示します。
Cの単純な概念実証として:
int main()
{
putchar(104); // h
putchar(101); // e
putchar(108); // l
putchar(108); // l
putchar(111); // o
putchar(10); // \n
return 0;
}
出力:
$ ./a.out こんにちは
文字列としての文字配列の参照が役立つかもしれませんか?
于 2009-09-19T05:37:28.403 に答える