C# で数値を記述するには、記述したものが float、double、integer などであるかどうかを示す表記法がいくつかあります。
2進数を書きたいのですが、どうすればいいですか?
私がバイトを持っているとしましょう:
byte Number = 10011000 //(8 bits)
2 進数で 10011000 = 10 進数で 152 ということをわざわざ知らずに、どのように書けばよいでしょうか?
PS:文字列の解析は完全に問題外です(パフォーマンスが必要です)
現在c#6c# 7 プレフィックスを使用して、 for hex0b
に似たバイナリを取得できます0x
int x = 0b1010000; //binary value of 80
int seventyFive = 0b1001011; //binary value of 75
試してみます
残念ながら、文字列を解析する以外に方法はありません。
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;