-1

簡単な質問があります。私たちが知っているように、これにCharは 2 バイト (16 ビット)、Byte1 バイト (8 ビット) が必要です。しかし、多くのプログラミング言語には、 に変換する関数がありCharますByte。何も失うことなく変換Charするにはどうすればよいですか?Byte

4

2 に答える 2

3

C# および Java では、char は 16 ビットの Unicode 文字です。他の (古い?) 言語 (C、C++ など) では、chars は ASCII 文字の 8 ビット表現です。これらの言語では、何も失うことなく型を変換することは理にかなっています。

C# では、chars を 2 倍の s に変換するか、変換しようとしている s が Unicode s として記述された 8 ビットの s (ASCII テーブルを参照) であるbyteと (実際に) 想定することができます。charcharchar

于 2012-10-30T09:29:55.947 に答える
1

不可能です。このような機能を備えた言語はないと思います。たとえば、Java には がありString.getBytes、C# には がありEncoding.GetBytesますが、得られるbyteのは ではなくbyteです。この種の変換は、C での from からshort[]to へのキャストに似てchar[]います。非常に単純で、操作はなく、キャストするだけです。オブジェクト全体のサイズ (合計バイト数) は変わりません。何も失われません。

于 2012-10-30T10:07:13.830 に答える