Zastanawiam się czy i w jaki sposób możliwe jest zrealizowanie np. czegoś takiego: ktoś podaje mi 2 liczby, załóżmy, że 1024 i 3, a ja używając tylko operatorów bitowych podaję wynik (liczbę po i przed przecinkiem)? Jak to wykonać?
O jaki wynik chodzi?
No wynik tego dzielenia najelepiej ;) bo 1024 / 3 = 341,33333333333333333333333333333 i chciałbym mieć cały ten wynik za pomocą bitowych operatorów otrzymany
A podane liczby to liczby całkowite?
W sumie tak, bo są to stringi, tzn. "1024" i "3", gdzie mogę to robić przechodząc po kolejnych cyfrach liczby operatorem chociażby [] lub at() i pobierać poj. cyfry liczby, zamieniać je na int i wykonywać działanie :) Więc chyba można rzec, że int.
I masz z dwóch stringów zrobić string wyniku?
Czy te liczby mieszczą się w long long ?
To znaczy wiesz, mogę to robic tak samo jak wcześniej, a wynik ma być w stringu (w long long się nie mieści -.-)
Chodzi mi o coś takiego, jak poniżej - oczywiście muszę uwzględnić, długość liczb - są różnej długości, muszę uwzględnić przeniesienia, (tu nie uwzględniłem, bo chciałem Ci tylko pokazać) :
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int naInt(char liczba){
stringstream ss;
string s;
ss << liczba;
ss >> s;
return atoi(s.c_str());
}
string naString(int liczba){
ostringstream oss;
oss << liczba;
return oss.str();
}
int main(int argc, char **argv){
string a = "111";
string b = "222";
string f = "";
for(int i=0; i<3; i++)
{
int c = naInt(a[i]);
int d = naInt(b[i]);
int e = c+d;
f += naString(e);
}
cout << f << endl;
cin.get();
return 0;
}
Tak bym sobie wykonywał zamianę poj. cyfry na int i wykonywał działanie. Oczywiście mi chodzi o dzielenie, jak widzisz zmiana string/int int/string to nie problem :) Bardziej nie wiem jak poprawnie zrobić dzielenie uwzględniając przeniesienia, różną długość liczb no i otrzymanie całego wyniku, wraz z tym wszystkim, co jest po przecinku ...
jeżeli dasz:
string a = "111111111111111111111111111111111111111111111111111111111111111111111111111111";
to już nie zadziała poprawnie, dla tego moje pytanie, czy chcesz iść od napisu jak wyżej czy da się operować już na liczbach całkowitych.