Earn More by Sharing What You Love
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Tim Corey
9 分 43 秒
2進数はコンピューティングに不可欠な要素であり、C#で2進数を扱う方法を理解することは、低レベルの操作、ビット単位の操作、効率的なストレージを扱う上で非常に重要です。 この記事では、Tim Corey 氏のビデオ Binary in C#:10分以内にバイナリ値を保存して表示するというビデオに従って、C#でバイナリ値を保存および表示するための主要な概念を説明します。
Timは、このトピックを簡潔かつ詳細に説明し、把握しやすくします。彼の説明を順を追って見ていき、C#でバイナリ値がどのように機能するのかを探っていきましょう。
Timはまず、"C#で2進数を格納するにはどうすればよいか"という核心的な問題に取り組むことから始めます。 彼は、0b101 のような二進数が基数2の値を表し、整数型変数に格納されることを説明しています。
バイナリ値を格納するために、ティムは次の構文を示します:
int binaryValue = 0b101; // Represents the decimal number 5Dim binaryValue As Integer = &B101 ' Represents the decimal number 5ここで、0b は接頭辞で、C# にこれを二進数として解釈するよう指示します。 ティムは 0b101 が10進法で5に相当することを強調しています。
また、先頭にゼロを追加しても(例: 0b00000101)値は変わらないことを指摘しています。 余分なゼロは数値的な意味を持たないため、システムはまだ5と解釈しています。
バイナリ値を格納したら、次のステップはそれを表示することです。 ティムは興味深い動作を指摘している。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: 101Dim binaryString As String = 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: 00000101Dim formattedBinary As String = binaryString.PadLeft(8, "0"c)
Console.WriteLine($"Formatted binary: {formattedBinary}")
' Outputs: Formatted binary: 00000101ここでは、PadLeft(8, '0') により、常に最低8文字あることが保証され、不足している部分はゼロで埋められます。 これは、バイトサイズのバイナリ値を扱う場合に特に役立ちます。
ティムは、'0' を囲むシングルクォートが、PadLeft が文字として処理され、文字列として処理されないため、必要であることを明確にしています。
ティムの指摘するもう一つの重要な点は、二進形式( 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 1100Dim decimalNumber As Integer = 12
Dim binaryRepresentation As String = Convert.ToString(decimalNumber, 2)
Console.WriteLine($"Binary equivalent of {decimalNumber} is {binaryRepresentation}")
' Outputs: Binary equivalent of 12 is 1100ここでは、数値12が10進整数として保存されますが、変換されると正確に 1100 として二進表示されます。
ティムは、このテクニックがデバッグや、数値がビットレベルでどのように保存されているかを理解するのに役立つことを強調している。
ティムはまた、二進値が異なる数値データ型に保存される方法にも触れています。整数型( int )が最も一般的ですが、C#では uint (符号なし整数)や long のような他の型に二進値を保存することができます。
例えば:
uint unsignedBinary = 0b1010; // 10 in decimal
long largeBinary = 0b1100110011; // A longer binary numberDim unsignedBinary As UInteger = &B1010 ' 10 in decimal
Dim largeBinary As Long = &B1100110011 ' A longer binary numberuint は負の値をサポートしない一方で、long は非常に大きな数を保持できるという重要な違いがあります。
ティムは、ビット単位のシフトやマスキングのような低レベルの操作を行う際に、これらの区別を理解することが役立つと述べています。
Tim氏は最後に、重要なポイントをまとめました:
0b 接頭辞を使って整数型に保存されます。
2.整数の印刷のデフォルトは10進数表現であり、2進数出力には明示的な変換が必要です。Convert.ToString(value, 2) は数値を二進形式に変換するのに役立ちます。PadLeft は一貫したビット長表現を保証します。
5.使用するケースに応じて、異なる数値型で2進数を格納することができます。これらのテクニックを使うことで、C#でバイナリ値を扱うことが、より簡単で直感的になります。このトピックの理解を深めるには、ビデオをご覧ください。
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!
Join our newsletter, you’ll get exclusive access on article updates. We value your privacy