दशमलव (बेस-10) संख्या को ऑक्टल (बेस-8) में बदलने के लिए हम बार-बार 8 से विभाजित करते हैं और शेषफल एकत्र करते हैं।
एल्गोरिदम
- संख्या को 8 से विभाजित करें, शेषफल स्टोर करें।
- भागफल को नई संख्या बनाएं।
- संख्या 0 होने तक दोहराएं।
- शेषफलों को उल्टे क्रम में पढ़ें।
उदाहरण
using System;
class Demo {
public static void Main() {
int decVal, quot, i = 1, j;
int[] octalVal = new int[80];
decVal = 40;
quot = decVal;
Console.WriteLine("Decimal Number: {0}", decVal);
while (quot != 0) {
octalVal[i++] = quot % 8;
quot = quot / 8;
}
Console.Write("Octal Number: ");
for (j = i - 1; j > 0; j--)
Console.Write(octalVal[j]);
Console.Read();
}
}
आउटपुट
Decimal Number: 40 Octal Number: 50
चरण-दर-चरण (40 के लिए)
| चरण | संख्या | 8 से विभाजित | शेषफल |
|---|---|---|---|
| 1 | 40 | 5 | 0 |
| 2 | 5 | 0 | 5 |
शेषफल उल्टे क्रम में: 50 (ऑक्टल)
सत्यापन: 5×8¹ + 0×8⁰ = 40 ✓
बिल्ट-इन मेथड: Convert.ToString
int dec = 40; string octal = Convert.ToString(dec, 8); // "50" Console.WriteLine(octal);
किसी भी बेस (2-36) के लिए जेनेरिक फंक्शन
public static string ToBase(int number, int base_) {
if (number == 0) return "0";
if (base_ < 2 || base_ > 36) throw new ArgumentException("Base must be 2-36");
const string digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var result = new System.Text.StringBuilder();
bool negative = number < 0;
uint n = (uint)(negative ? -number : number);
while (n > 0) {
result.Insert(0, digits[(int)(n % (uint)base_)]);
n /= (uint)base_;
}
if (negative) result.Insert(0, '-');
return result.ToString();
}
// उपयोग
Console.WriteLine(ToBase(40, 8)); // "50"
Console.WriteLine(ToBase(40, 2)); // "101000"
Console.WriteLine(ToBase(40, 16)); // "28"
मुख्य बिंदु
- ऑक्टल प्रणाली में अंक 0-7 होते हैं।
- C# में ऑक्टल लिटरल
0oया0प्रीफिक्स के साथ लिखे जाते हैं:0o50या050। - बिल्ट-इन
Convert.ToString(value, base)सबसे आसान तरीका है।