बाइनरी स्ट्रिंग (जैसे "1001") को इंटीजर में बदलने के लिए C# में Convert.ToInt32 मेथड सबसे सरल तरीका है।
सबसे सरल तरीका: Convert.ToInt32
string binary = "1001"; int value = Convert.ToInt32(binary, 2); // बेस 2 Console.WriteLine(value); // 9
मैन्युअल पार्सिंग (शैक्षिक)
public static int BinaryStringToInt(string binary) {
if (string.IsNullOrEmpty(binary))
throw new ArgumentException("Invalid input");
int result = 0;
for (int i = 0; i < binary.Length; i++) {
char c = binary[i];
if (c == '1') {
result += (int)Math.Pow(2, binary.Length - 1 - i);
}
else if (c != '0') {
throw new ArgumentException("Invalid binary string");
}
}
return result;
}
बिटवाइज दृष्टिकोण (तेज, कोई Math.Pow नहीं)
public static int BinaryStringToIntFast(string binary) {
int result = 0;
foreach (char c in binary) {
result <<= 1; // बाएं शिफ्ट (×2)
if (c == '1') result |= 1;
else if (c != '0') throw new ArgumentException("Invalid binary");
}
return result;
}
उदाहरण: पूरी कक्षा
using System;
class Program {
static void Main() {
string str = "1001";
Console.WriteLine("Integer: " + ConvertClass.Convert(str));
}
}
public static class ConvertClass {
public static int Convert(string str1) {
if (str1 == "")
throw new Exception("Invalid input");
int val = 0, res = 0;
for (int i = 0; i < str1.Length; i++) {
try {
val = Int32.Parse(str1[i].ToString());
if (val == 1)
res += (int)Math.Pow(2, str1.Length - 1 - i);
else if (val > 1)
throw new Exception("Invalid!");
}
catch {
throw new Exception("Invalid!");
}
}
return res;
}
}
आउटपुट
Integer: 9
महत्वपूर्ण नोट्स
Convert.ToInt32(str, 2)मानक, परीक्षित, और सबसे कुशल तरीका है।- मैन्युअल पार्सिंग में
Math.Powधीमा है - बिटवाइज शिफ्ट (<<) बेहतर है। - इनपुट वैलिडेशन आवश्यक है (केवल '0' और '1' अनुमत)।
- बहुत लंबी बाइनरी स्ट्रिंग्स के लिए
BigIntegerउपयोग करें।
BigInteger के साथ (असीमित आकार)
using System.Numerics;
string hugeBinary = "1" + new string('0', 1000); // 2^1000
BigInteger big = BigInteger.Parse(hugeBinary, System.Globalization.NumberStyles.Binary);
उल्टा रूपांतरण: इंट → बाइनरी स्ट्रिंग
int n = 9; string binary = Convert.ToString(n, 2); // "1001" string binaryPadded = Convert.ToString(n, 2).PadLeft(8, '0'); // "00001001"