Advertisement
Guest User

Untitled

a guest
Jan 21st, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.27 KB | None | 0 0
  1. #include <iostream>
  2. #include <sstream>
  3. #include <cmath>
  4.  
  5. using namespace std;
  6.  
  7. string d_to_p_U2(int liczba, int p)
  8. { string wynik=""; string cyfra; int n=8;
  9. while(!(pow(-2,(n-1))<=liczba && liczba<=(pow(2,(n-1))-1))) n++; //sprawdzenie d�ugo�ci liczby - czyli ilo�ci
  10. //bit�w wymaganych do jej przedstawienia
  11. if(liczba<0) liczba=pow(2,n)-abs(liczba); else liczba=liczba; //zasadnicza zale�no��
  12. while(liczba!=0)
  13. {
  14. stringstream s; //zminna strumieniowa
  15. s << liczba%p; // waro�� reszty do strumienia
  16. cyfra=s.str(); //wyodr�bnienie napisu ze strumienia
  17.  
  18. wynik=cyfra+wynik; //�aczenie napis�w
  19. liczba/=p; //modyfikacja liczbyh
  20. }
  21. while(wynik.length()<n) {wynik="0"+wynik;} //test na d�ugo�� liczby i diklejanie zer
  22. return wynik;
  23. }
  24.  
  25.  
  26.  
  27. int p_to_d_U2(string liczba, int p) //obliczenie wartosci decylanej lcizby zapisanej w U2
  28. {
  29. int wynik;
  30. if(liczba[0]=='1') wynik=-1*(liczba[0]-'0'); //test pierwszego zanku
  31. for(int i=1;i<liczba.length();i++)
  32. {
  33. wynik=wynik*p +liczba[i]-'0';
  34. }
  35. return wynik;
  36. }
  37.  
  38.  
  39. int main(){
  40. cout << p_to_d_U2("11101111",2) <<endl;
  41. cout << d_to_p_U2(-17,2) <<endl;
  42.  
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement