» »

[C#] Input string was not in a correct format.

Cvenemir ::

Lp. Napisat morem program, ki prebere binarno število in ga pretvori v decimalni zapis. Ko ga zaženem in vpišem npr. 1010 mi javi napako, ki je omenjena v naslovu.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Delo_z_binarnimi_števili
{
    class Program
    {
        //Funkcija za pretvorbo iz binarne v desetiško obliko
        static int binToDec(string vhodniNiz, int decZapis, int temp)
        {
            //Inicializacija polj
            char[] poljeZnakov = new char[vhodniNiz.Length];
            int[] poljeDecŠtevil= new int[vhodniNiz.Length];
            //Zanka za pretvorbo iz binarnega v decimalni zapis
            for(int i = vhodniNiz.Length-1;i==0;i--)           
            {
                poljeZnakov[i] = vhodniNiz[i];    
                
                if(poljeZnakov[i] == 1)
                {
                   temp = 1*(2^i);
                   poljeDecŠtevil[i] = temp;                   
                }
            
                else if(poljeZnakov[i] == 0)
                {
                   temp = 0;
                }
                //Računanje končnega rezultata
                for (int j = vhodniNiz.Length; j >= 0; j--)
                {
                    decZapis = poljeDecŠtevil[j] + poljeDecŠtevil[j - 1];
                }
                
            }
            return decZapis;
        }
            
        //Glavni program, s katerim preverimo delovanje funkcij
        static void Main(string[] args)
        {
            string vhodniNiz = "";
            int decŠtevilo = 0;
            int binŠtevilo = 0;
            int decZapis = 0;
            int temp = 0;
            char[] posamezenZnak=new char[vhodniNiz.Length];

            //Izpis števila v desetiški obliki
            Console.WriteLine("Vnesite število v binarni obliki.");
            vhodniNiz = Console.ReadLine();
            Console.WriteLine("Vnešeno število je v desetiški obliki zapisano kot {}", binToDec(vhodniNiz, decZapis, temp));

            //Izpis števila v binarni obliki
            Console.WriteLine("Vnesite število v desetiški obliki.");
            decŠtevilo = int.Parse(Console.ReadLine());
            Console.WriteLine("Vnešeno število je v binarni obliki zapisano kot {}", binŠtevilo);
        }
    }
}

Help needed. Hvala.

LeQuack ::

Malo si preveč zakompliciral stvar, pa nekaj napak je vmes. Za potence ne smeš upora biti ^ znak, ker ni namenjem temu. Uporabiš lahko vgrajeno funkcijo Math.Pow(x, y). Tudi ne rabiš toliko spremenljivk definirati, navsezadnje je dosti da daš parameter metodi samo vhodni niz.

Tukaj je poenostavljena verzija za pretvorbo iz binarne v decimalno obliko:
        // Funkcija za pretvorbo iz binarne v desetiško obliko
        static long binToDec(string vhodniNiz)
        {
            long rezultat = 0;

            // Zanka skozi binarni niz, zacnemo na levi strani
            for (int i = 0; i < vhodniNiz.Length; ++i)
                // Rezultatu vsakic pristejemo binarno vrednost (0 ali 1), množeno z 2 na potenco,
                // ki je enaka (vhodniNiz.Length - 1) - i
                rezultat += long.Parse(vhodniNiz[i].ToString()) * (long)Math.Pow(2, vhodniNiz.Length - 1 - i);

            return rezultat;
        }

        //Glavni program, s katerim preverimo delovanje funkcij
        static void Main(string[] args)
        {
            // Preberi stevilo v desetiski obliki
            Console.Write("Vnesite število v binarni obliki: ");
            string vhodniNizBinarni = Console.ReadLine();
            Console.WriteLine("Vnešeno število je v desetiški obliki zapisano kot {0}", binToDec(vhodniNizBinarni));

            // Pritisni katerokoli tipko za izhod
            Console.ReadKey();
        }
Quack !

Zgodovina sprememb…

  • spremenil: LeQuack ()

Cvenemir ::

Najlepša hvala!

Cvenemir ::

Če bi se dalo, bi prosil še za kodo za obratno pretvorbo. Meni nikakor ne uspe.

LeQuack ::

Za pretvorbo iz decimalne v binarne obliko lahko uporabimo algoritem, na primer tale:
http://trunix.org/programlama/cpp/fred/...

Tule pa je še drug del programa, ki torej pretvori iz decimalne oblike v binarno:
        // Funkcija za pretvorbo iz destiške v binarno obliko
        static string decToBin(long vhodnoStevilo)
        {
            string rezultat = "";

            // Nadaljuj dokler vhodno stevilo ni enako nic
            while (vhodnoStevilo > 0)
            {
                // Rezultatu dodamo spredaj 0 ali 1, kar ustreza ostanku pri deljenju z2
                rezultat = (vhodnoStevilo % 2) + rezultat;
                // Vhodno stevilo delimo z 2 in nadaljujemo
                vhodnoStevilo /= 2;
            }

            return rezultat;
        }

        //Glavni program, s katerim preverimo delovanje funkcij
        static void Main(string[] args)
        {
            // Preberi stevilo v desetiski obliki in ga pretvori v binarno
            Console.Write("Vnesite število v desetiski obliki: ");
            long vhodnoSteviloDecimalno = long.Parse(Console.ReadLine());
            Console.WriteLine("Vnešeno število je v binarni obliki zapisano kot {0}", decToBin(vhodnoSteviloDecimalno));

            // Pritisni katerokoli tipko za izhod
            Console.ReadKey();
        }
Quack !

gendale ::

seznam zanč moderatorjev in razlogov da so zanč
http://pastebin.com/QiWny5dV
gor je mavrik apple uporabniček (mali možgani in mali penis)

Cvenemir ::

Še enkrat najlepša hvala za pomoč!


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Nemorem rešit ene naloge z c++ (sem začetnik) (strani: 1 2 )

Oddelek: Programiranje
685863 (1601) technolog
»

Bin v Dec [java]

Oddelek: Programiranje
6433 (331) mR-Jubax
»

[C#] branje ter urejanje podatkov

Oddelek: Programiranje
18882 (657) dojaja
»

[c++] seštevanje binarnih števil (256bit)

Oddelek: Programiranje
51521 (1368) Thomas
»

pretvarjanje-številski sistemi

Oddelek: Programiranje
52048 (2014) Tutankhamun

Več podobnih tem