Bits in Datei schreiben



  • Der Code funzt 😉

    Kannst du mir bei dem anderen problem mit den strings vielleicht auch noch helfen?
    Ich bekomm das einfach nicht hin zwei strings aneiander zu fügen..



  • na du brauchst dann in dem falle einen buffer der grösse 9 damit die beiden teilstrings und ein terminierungszeichen reinpassen...

    char str1[] ="1111";
    char str2[] ="0000"
    char buffer[9];
    sprintf(buffer,"%s%s",str1,str2);  //oder du nimmst strcpy und strcat...
    


  • Kann es sein das dein Prog nur 7 Bit umwandelt und das 8. Bit nicht?



  • öhm spontan würd ich sagen nein aber ich habs wie gesagt nicht getestet...
    anhand welchen beispielfalles klappt denn da was nicht?



  • Generell wenn das erste Zeichen eine 1 ist zählt der das net mit.
    zb: "10000000" gibt als wert -128 zurück...



  • das ist nunmal bei signed variablen so... das erste bit wird negativ interpretiert...
    wenn du das nicht magst nimm ein unsigned char...



  • Ach so.. das wusste ich nicht. Ich kenne mich da nicht so aus. Was ist den der unterschied zwischen signed und unsignes char? Und wie deklarier ich ein unsigned char??



  • Ach so.. das wusste ich nicht. Ich kenne mich da nicht so aus. Was ist den der unterschied zwischen signed und unsignes char

    na die einen sind halt vorzeichenbehaftet und die anderen nicht 😉
    unsigned char läuft (so char 8 bit gross ist) von -128 bis 127...
    im klartext das signed/unsigned gibt an ob das MSB negativ oder positiv interpretiert werden soll wenn singed dann ist das erste einfach -128 sonst 128

    Und wie deklarier ich ein unsigned char??

    manchmal gibt man sich die antwort schon selbst 😃

    unsigned char c;
    


  • Oh gut 😉

    Das ist ja praktisch, ich denke mal das wird mir weiter helfen.

    danke nochmal!



  • Nochmal ne Frage:

    Wenn ich jetzt endlich viele Zeichenketten habe die unterschiedlich lang sind und in jeder steht so eine Folge von 0 und 1, wie kann ich das am besten managen das ich immer 8bits an meine Funktion BitToChar schicke??

    ich habe einen array..

    char bitcodes[];
    
    bitcodes[0]="110"
    bitcodes[2]="01010"
    bitcodes[3]="1101"
    bitcodes[4]="1111011101"
    
    usw...
    


  • so wie du das gepostet hast geht das nicht...
    ein char ist nur ein einzelnes zeichen... ein array von chars (string) kann mehrere zeichen beinhalten...
    wenn du ein array von strings haben willst brauchst du ein ein char** ...


Anmelden zum Antworten