ilosc cyft w liczbie

0

Witam

Mam problem - mam wczytaną tablicę liczb z pliku, teraz chce ją wysłać do funkcji która przelicza mi te liczbę na system dziesiętny (z dwójkowego). Chodzi mi o to aby można było tak zrobić aby ,,ponumerować" liczbę tzn. 100100 abym mogł odnosić się do 1, 0, 1 itd. a nie całej cyfry- mam nadzieje że wiecie o co chodzi ;)

z góry thx

0

Jaki język?

0

Modullo i div. Chociaż pamiętam, że ja w c++ wczytywalem to do stringa i używając stringstream zamienualem kolejne znaki na cyferki

0
Kopernik napisał(a)

Modullo i div. Chociaż pamiętam, że ja w c++ wczytywalem to do stringa i używając stringstream zamienualem kolejne znaki na cyferki

LoL:

string str = "10110110010001001001110";
vector<int> arr(str.length());
for(int i = 0; i < str.length(); ++i)
  arr[i] = str[i] - '0';
0

Jakiś algorytm wysmyczyłem:

int binary = 101001; //przykład
int decimal = 0; //wynik
int i = 0; //licznik (potęga dwójki)

do
{
        byte = binary%10; //reszta z dzielenia przez 10 (taki ostatni bit z prawej)
        decimal += byte * 2 ^ i; //dodajemy wartość bitu do wyniku
        i++; //inkrementujemy licznik
        binary = binary/10; //ucinamy ostatni bit
}
while (binary > 0)

Działający kod php:

<?php
$binary = 1010; //10
$decimal = 0;
$i = 0;

do
{
        $byte = $binary % 10;
        $decimal += $byte * pow(2, $i);
        $i++;
        $binary = (int)($binary / 10);
}
while ($binary > 0);
echo $decimal;
0

vector<int> arr(str.length()); // w C++11 lepiej użyć arr{str.length()};

vector<int> arr(10) utworzy wektor 10 intów równych 0, a vector<int> arr{10} utworzy wektor z jednym intem równym 10.
Niestety, jest to kolejna mina podłożona w języku…

0

oczywiście do c++ miało być ;) nie wiedziałem że poprawne jest branie liczby jako stringa i manipulowanie później nim

thx za odp

1 użytkowników online, w tym zalogowanych: 0, gości: 1