Jeżeli masz:
string binarna2
to
binarna2[j]
zwraca typ char jeden znak z binarna2[j], to wtedy Convert.ToInt32( char "0" ) - zwraca kod ascii
co dla j=0 daje wartość 48
using System;
namespace Demo
{
class Program
{
static void Main(string[] args)
{
string binarna2 = "0";
Console.WriteLine(" binarna2: {0}", binarna2);
Console.WriteLine(" binarna2[indeks - 0] : {0}", Convert.ToInt32(binarna2[0]));
Console.ReadKey();
}
}
}
no i ( j - integer)
for (int j = 0; ...)
a Math.Pow(double x, double y)
no i musisz mieć tzw. "wagę". W Twoim kodzie to tu:
Math.Pow(2, j)
, ale przy tym zapisie "czytasz" liczbę binarną od lewej binarna2[j], ale "waga" jest od 0 bo int j = 0
for (int j = 0; j < binarna2.Length; j++)
{
dziesietny += Convert.ToInt32(binarna2[j] * Math.Pow(2, j));
}
trzeba wprowadzić "wagę" od najwyższej np. tak:
int dziesietny = 0;
int weight = binarna2.Length - 1;
for (int j = 0; j < binarna2.Length; ++j)
{
dziesietny += (int)(binarna2[j] - '0') * (int)Math.Pow(2, (double)(weight - j));
}
[ Convert char to int in C# ]