Перевод из двоичного в десятичное - C#
Формулировка задачи:
Как исправить ошибку?
static public string ConvertToOcta(string input_bin)
{
while (input_bin.Length % 3 != 0)
{
input_bin = "0" + input_bin;
}
int one_octa_num;
string result = "";
for(int i = input_bin.Length;i>0; i-=3)
{
int rank2 = input_bin[i - 2] == 1 ? 4 : 0;
int rank1 = input_bin[i - 1] == 1 ? 2 : 0;
int rank0 = input_bin[i] == 1 ? 1 : 0;
one_octa_num = rank0 + rank1 + rank2;
result += one_octa_num;
}
return result;
}Решение задачи: «Перевод из двоичного в десятичное»
textual
Листинг программы
using System;
class Program
{
static string BinToOct(string bin)
{
string oct = "";
int tri = 0;
for (int i = bin.Length-1, j = 0; i >= 0; i--, j++)
{
tri += bin[i] == '1' ? (int)Math.Pow(2, j) : 0;
if (j==2 || i == 0)
{
oct = tri+oct;
j = -1;
tri = 0;
}
}
return oct;
}
static void Main()
{
Console.WriteLine(BinToOct(Console.ReadLine()));
}
}