hey habe ein problem, wovon ich keine ahnung habe wieso es kommt.
hier der code erstmal
eigentlich klappt alles perfekt nur eine sache nervt, unzwar ist mein array nicht "1011" sondern "1011:)" keine ahnung wieso 5 zeichen statt 4 ausgegeben werden... das traurige ist sobald ich oben "char UHB[4]" ändere zu "char UHB[3]" oder "char UHB[5]" mache klappt das normal... aber will das nicht machen, da ich für ein unteres halbbyte halt genau 4 zeichen brauche + null terminierter 5 also UHB[4] sollte ja das optimale sein :S
hier der code erstmal
Code:
class HB{
protected:
char UHB[4]; //unteres halbbyte also "1111" für 15
bool Valid; //gültigkeit überprüfen
public:
char* getUHB(){
return UHB;
}
bool getValid(){
return Valid;
}
HB(int Wert){
Valid = true;
if(Wert>=0 && Wert<=15){
for(int i=3; i>=0; i--){// zahl in binärzahl umrechnen
UHB[i]= Wert%2+48;
Wert/=2;
}
}else Valid = false;
}
HB(const HB &HB2){
for(int i=0;i<4&&Valid;i++){
UHB[i]=HB2.UHB[i];
}
Valid= HB2.Valid;
}
};
int main() {
HB byte(11);
std::cout << byte.getUHB();
return 0;
}