ilosc cyft w liczbie

2011-09-22 17:47
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

Pozostało 580 znaków

2011-09-22 17:53
0

Jaki język?


Pozostało 580 znaków

2011-09-22 18:06
Kopernik
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

Pozostało 580 znaków

2011-09-22 18:34
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';

edytowany 1x, ostatnio: hauleth, 2011-09-22 19:37

Pozostało 580 znaków

2011-09-22 18:37
wskaźnik
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;

Pozostało 580 znaków

2011-09-22 18:45
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…

edytowany 1x, ostatnio: Azarien, 2011-09-22 18:47
A nie przypadkiem arr = {10} utworzy wektor z jednym intem równym 10? - hauleth 2011-09-22 18:52
Azarien ma rację, ponieważ konstruktor z lista inicjalizacyjną ma pierwszeństwo jeżeli używa się składni {cos}. - Endrju 2011-09-22 19:07
Ale fail... Mieli poprawić a wyszło jak zwykle... - hauleth 2011-09-22 19:37

Pozostało 580 znaków

2011-09-23 17:53
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

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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