Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <sstream>
- #include <cmath>
- using namespace std;
- string d_to_p_U2(int liczba, int p)
- { string wynik=""; string cyfra; int n=8;
- while(!(pow(-2,(n-1))<=liczba && liczba<=(pow(2,(n-1))-1))) n++; //sprawdzenie d�ugo�ci liczby - czyli ilo�ci
- //bit�w wymaganych do jej przedstawienia
- if(liczba<0) liczba=pow(2,n)-abs(liczba); else liczba=liczba; //zasadnicza zale�no��
- while(liczba!=0)
- {
- stringstream s; //zminna strumieniowa
- s << liczba%p; // waro�� reszty do strumienia
- cyfra=s.str(); //wyodr�bnienie napisu ze strumienia
- wynik=cyfra+wynik; //�aczenie napis�w
- liczba/=p; //modyfikacja liczbyh
- }
- while(wynik.length()<n) {wynik="0"+wynik;} //test na d�ugo�� liczby i diklejanie zer
- return wynik;
- }
- int p_to_d_U2(string liczba, int p) //obliczenie wartosci decylanej lcizby zapisanej w U2
- {
- int wynik;
- if(liczba[0]=='1') wynik=-1*(liczba[0]-'0'); //test pierwszego zanku
- for(int i=1;i<liczba.length();i++)
- {
- wynik=wynik*p +liczba[i]-'0';
- }
- return wynik;
- }
- int main(){
- cout << p_to_d_U2("11101111",2) <<endl;
- cout << d_to_p_U2(-17,2) <<endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement