C#のバイナリ値:バイナリ値の格納と表示
2進数はコンピューティングに不可欠な要素であり、C#で2進数を扱う方法を理解することは、低レベルの操作、ビット単位の操作、効率的なストレージを扱う上で非常に重要です。 この記事では、Tim Corey 氏のビデオ Binary in C#:10分以内にバイナリ値を保存して表示するというビデオに従って、C#でバイナリ値を保存および表示するための主要な概念を説明します。
Timは、このトピックを簡潔かつ詳細に説明し、把握しやすくします。彼の説明を順を追って見ていき、C#でバイナリ値がどのように機能するのかを探っていきましょう。
Storing Binary Values in C
Timはまず、"C#で2進数を格納するにはどうすればよいか"という核心的な問題に取り組むことから始めます。 彼は、0b101のようなバイナリ数が2進数の値を表し、整数変数に格納されていると説明します。
バイナリ値を格納するために、ティムは次の構文を示します:
int binaryValue = 0b101; // Represents the decimal number 5int binaryValue = 0b101; // Represents the decimal number 5ここで、0bは、C# にその後の数字をバイナリ数として解釈するように指示するプレフィックスです。 ティムは、0b101が10進法では5に相当することを指摘します。
また、先頭にゼロを追加しても(例: 0b00000101)値は変わらないと述べています。 余分なゼロは数値的な意味を持たないため、システムはまだ5と解釈しています。
Printing Binary Values in C
バイナリ値を格納したら、次のステップはそれを表示することです。 ティムは興味深い動作を指摘している。2進数で格納された値を印刷するとき、C#はデフォルトでそれを10進数に変換する。
例えば:
Console.WriteLine($"Binary value is: {binaryValue}");
// Outputs: Binary value is: 5Console.WriteLine($"Binary value is: {binaryValue}");
// Outputs: Binary value is: 5たとえ0b101として格納しても、コンソールは5を出力します。ティムは、C# が数値を表示するとき、デフォルトで10進数を使用すると説明します。
値をバイナリ形式で見るには、変換が必要です。
整数をバイナリ形式に変換する
Tim は、整数をバイナリ文字列としてフォーマットする簡単な方法を紹介します:
string binaryString = Convert.ToString(binaryValue, 2);
Console.WriteLine($"Binary representation: {binaryString}");
// Outputs: Binary representation: 101string binaryString = Convert.ToString(binaryValue, 2);
Console.WriteLine($"Binary representation: {binaryString}");
// Outputs: Binary representation: 101彼は、Convert.ToString(value, 2)が整数を文字列としてそのバイナリ表現に変換することを説明します。 この方法で、もし101を正しく表示し、5の代わりに表示します。
先頭のゼロでバイナリ値をパディングする
Timは次に、2進数を表示する際にしばしば発生する問題に取り組みます。 多くの場合、00000101のように8ビット形式でバイナリ数を表示したいです。
彼は、PadLeftを使用してこれを達成する方法を説明します:
string formattedBinary = binaryString.PadLeft(8, '0');
Console.WriteLine($"Formatted binary: {formattedBinary}");
// Outputs: Formatted binary: 00000101string formattedBinary = binaryString.PadLeft(8, '0');
Console.WriteLine($"Formatted binary: {formattedBinary}");
// Outputs: Formatted binary: 00000101ここで、PadLeft(8, '0')はバイナリ文字列が常に少なくとも8文字であることを保証し、不足しているスペースをゼロで埋めます。 これは、バイトサイズのバイナリ値を扱う場合に特に役立ちます。
ティムは、'0'の周りにシングルクォーテーションが必要であることを明確にします。
10進数の2進数表現
ティムが指摘するもう一つの重要な点は、バイナリ表現を得るために0b表記で数字を入力する必要がないことです。
例えば、標準的な10進数を2進数に変換することができます:
int decimalNumber = 12;
string binaryRepresentation = Convert.ToString(decimalNumber, 2);
Console.WriteLine($"Binary equivalent of {decimalNumber} is {binaryRepresentation}");
// Outputs: Binary equivalent of 12 is 1100int decimalNumber = 12;
string binaryRepresentation = Convert.ToString(decimalNumber, 2);
Console.WriteLine($"Binary equivalent of {decimalNumber} is {binaryRepresentation}");
// Outputs: Binary equivalent of 12 is 1100ここで、12という数字は10進整数として格納されますが、変換されるときにはバイナリで1100を正しく出力します。
ティムは、このテクニックがデバッグや、数値がビットレベルでどのように保存されているかを理解するのに役立つことを強調している。
さまざまなデータ型に 2 進数を格納する
ティムはまた、バイナリ値がさまざまな数値データ型で格納できることにも触れています。整数(int)は最も一般的ですが、C# は他のタイプ(longなど)にもバイナリ値を格納することを許可します。
例えば:
uint unsignedBinary = 0b1010; // 10 in decimal
long largeBinary = 0b1100110011; // A longer binary numberuint unsignedBinary = 0b1010; // 10 in decimal
long largeBinary = 0b1100110011; // A longer binary numberlongははるかに大きな数を保持できることです。
ティムは、ビット単位のシフトやマスキングのような低レベルの操作を行う際に、これらの区別を理解することが役立つと述べています。
最終的な考え
Tim氏は最後に、重要なポイントをまとめました:
- バイナリ数は
0bプレフィックスを使用して整数タイプに格納されます。 2.整数の印刷のデフォルトは10進数表現であり、2進数出力には明示的な変換が必要です。 Convert.ToString(value, 2)は、数値をバイナリ形式に変換するのを助けます。PadLeftは、一貫したビット長表現を保証します。 5.使用するケースに応じて、異なる数値型で2進数を格納することができます。
これらのテクニックを使うことで、C#でバイナリ値を扱うことが、より簡単で直感的になります。このトピックの理解を深めるには、ビデオをご覧ください。




