3

私はC#でプログラミングしています。sbyte 変数があります。バイナリで11110110である-10を保持しているとします。この値のバイナリ表現をバイト変数に格納したいと思います。したがって、sbyte (-10) をバイトにコピーすると、バイト値は 245 になります。Convert.ToByte(sbyte) を使用しようとすると、意味のある例外がスローされます。ある型から別の型に変換したくはありませんが、ビットごとのコピーを作成します。どうやってやるの?

4

2 に答える 2

11

キャストするだけです:

byte b = (byte) x;

コードがチェックされたコンテキストで通常実行されている場合は、この操作をチェックしないようにする必要があります。

byte b = unchecked((byte) x);

-10 は 245 ではなく 246 になることに注意してください。

于 2010-06-11T13:42:41.990 に答える
2

キャストするだけです:

byte b = 130;
sbyte a = (sbyte)b;
byte c = (byte)a; // will still be 130
于 2010-06-11T13:43:39.307 に答える