_fux_
0
hallo HaBo'ianer.
da ich mal wieder nich pennen kann (und klausurphase hab und deswegen keine party mache und weil freundin schon pennt ^^), habe ich mal eben noch einen kleinen dualrechner gecodet.
habe bit-shiften eingebaut, weil ich das noch nicht kannte und damit mal arbeiten wollte (also nächste kommt der operator "|=" - bitweises oder! kann mir noch ned soviel drunter vorstellen ^^)
naja lange rede, kurzer sinn. heir der code mit wenig kommentare
da ich mal wieder nich pennen kann (und klausurphase hab und deswegen keine party mache und weil freundin schon pennt ^^), habe ich mal eben noch einen kleinen dualrechner gecodet.
habe bit-shiften eingebaut, weil ich das noch nicht kannte und damit mal arbeiten wollte (also nächste kommt der operator "|=" - bitweises oder! kann mir noch ned soviel drunter vorstellen ^^)
naja lange rede, kurzer sinn. heir der code mit wenig kommentare
Code:
#include <iostream>
#include <string>
using namespace std;
string bin(int &nummer, int &exp);
int myPOW(int base, int expo);
int main(){
int zahl;
int zahl_;
int i=0;
string dual;
cout << "Zahl >> ";
cin >> zahl;
zahl_ = zahl;
// shiftet die zahl sollange bis 0
do{
i++;
zahl_ = zahl >> i;
}while(zahl_>0);
i = i--; // i-1 = groeste exponentenstelle
zahl_ = zahl;
dual = bin(zahl_, i); // es werden nur referenzen uebergeben
cout << "Zahl: " << zahl << endl;
cout << "in Dual: " << dual << endl;
return 0;
}
string bin(int &nummer, int &exp){
string dual;
int nr;
for(int i=0;i<=exp;exp--){ // funktioniert nach der restwert methode
nr = myPOW(2, exp);
if(nummer>=nr){
dual = dual + "1";
}
else dual = dual + "0";
if(nummer>=nr) nummer = nummer - nr;
}
return dual;
}
int myPOW(int base, int expo){
int returner=base;
for(int i=1;i<expo;i++){
returner = returner*base;
}
if(expo==0) return 1;
return returner;
}