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たとえ binaryValue が 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) が整数を文字列としてその二進表現に変換することを説明しています。 このようにして、もし 0b101 を保存した場合、コンソールは今や5の代わりに正しく 101 を表示します。
先頭のゼロでバイナリ値をパディングする
Timは次に、2進数を表示する際にしばしば発生する問題に取り組みます。 多くの場合、私たちは二進数を8ビット形式(例: 00000101 単なる 101 の代わりに)で表示したいと考えます。
彼は@@--CODE-271--@@ を使ってこれを達成する方法を説明しています。
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' を囲むシングルクォートが、PadLeft が文字として処理され、文字列として処理されないため、必要であることを明確にしています。
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#では uint (符号なし整数)や 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 numberuint は負の値をサポートしない一方で、long は非常に大きな数を保持できるという重要な違いがあります。
ティムは、ビット単位のシフトやマスキングのような低レベルの操作を行う際に、これらの区別を理解することが役立つと述べています。
最終的な考え
Tim氏は最後に、重要なポイントをまとめました:
- 二進数は
0b接頭辞を使って整数型に保存されます。 2.整数の印刷のデフォルトは10進数表現であり、2進数出力には明示的な変換が必要です。 Convert.ToString(value, 2)は数値を二進形式に変換するのに役立ちます。PadLeftは一貫したビット長表現を保証します。 5.使用するケースに応じて、異なる数値型で2進数を格納することができます。
これらのテクニックを使うことで、C#でバイナリ値を扱うことが、より簡単で直感的になります。このトピックの理解を深めるには、ビデオをご覧ください。




