4

C# で数値を記述するには、記述したものが float、double、integer などであるかどうかを示す表記法がいくつかあります。

2進数を書きたいのですが、どうすればいいですか?

私がバイトを持っているとしましょう:

byte Number = 10011000 //(8 bits)

2 進数で 10011000 = 10 進数で 152 ということをわざわざ知らずに、どのように書けばよいでしょうか?

PS:文字列の解析は完全に問題外です(パフォーマンスが必要です)

4

3 に答える 3

15

現在c#6c# 7 プレフィックスを使用して、 for hex0bに似たバイナリを取得できます0x

int x           = 0b1010000; //binary value of 80
int seventyFive = 0b1001011; //binary value of 75

試してみます

于 2018-02-15T04:58:34.880 に答える
4

残念ながら、文字列を解析する以外に方法はありません。

byte number = (byte) Convert.ToInt32("10011000", 2);

残念ながら、もちろん、そのような定数値を割り当てることはできません。

それを頻繁に行う場合は、文字列に拡張メソッドを記述して、読みやすくすることができると思います。

public static class StringExt
{
    public static byte AsByte(this string self)
    {
        return (byte)Convert.ToInt32(self, 2);
    }
}

次に、コードは次のようになります。

byte number = "10011000".AsByte();

それが良いアイデアかどうかはわかりませんが...

個人的には、16 進数の初期化子を使用するだけです。

byte number = 0x98;
于 2013-10-11T11:36:30.840 に答える