befehl für zeichenfolge in bitfolge umwandeln
-
Hi, gibts es eine FUnktion die o.g. realisiert, wenn nicht wie kann man sowas trotzdem realsiieren?
-
musste selber schreiben gibts net
-
alles klar, eine frage habe ich noch.
wenn ich printf("%x", wert);
dann wird ja mein wert formatiert.
wie kann ich eine solche formatierung ohne ausgabe vornehmen?
-
das problem ist das es dann kein double integer etc ist , es enthällt als hexadezimale zahl auch char zeichen wie a bis f.
die kannste dan natürlich nicht in einer int oder double variable vorfinden.da müsstest du dir ne klasse aufbauen .
am besten sagst du was du vorhast , es gibt da bestimmt einen sehr leichten weg.
-
Jo, hab ich gerade gemerkt.
Na ja, habs jetzt umgangen.Danke für die Antworten
-
callback, red keinen nonsense bitte.
cmg, sprintf() wuerde die "ausgabe" in ein char array geben.
ja, was willst du genau machen?
-
ich wollte eigentlich sowas realisieren.
Eingabe "aa"
Ausgabe: 01100001 01100001
Also sowas wie Zeichen in Ascii in Binär, hab es jetzt manuell gemacht, wäre aber trotzdem interessant, ob es dafür eine vordefinierte FUnktion gibt.
-
dafuer gibt es keine vordefinierten funktionen.
du musst selber den string ablaufen und die bits selber auslesen und ausgeben.such mal im forum, dann findest du sicher was.
-
Bei mir läufts jetzt, wollte es ja nur rückwirkend mal wissen
Aber danke für die Antworten!
-
du denkst hoffentlich nicht, dass %x fuer binaer steht, oder?
-
hab jetzt mal was dazu geschrieben, aber abgesehen davon, das ich den binärwert
verkehrt herum ausgebe, scheint mein buf[] zu groß angelegt zu sein. Wo ist da
der Wurm drin?#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, char *argv[]) { char feld[]="aa"; char *buf; char currentLetter; unsigned int i, j; buf = (char *) malloc(sizeof(feld)); for (i=0; i<strlen(feld); i++) { currentLetter = feld[i]; printf(" "); for(j=0; j<8; j++) { if ( currentLetter & 1 ) strcat(buf + i * sizeof(feld) + j, "1"); else strcat(buf + i * sizeof(feld) + j, "0"); currentLetter >>= 1; } } printf("%s\n", buf); printf("\n"); return 0; }
//edit: habe c++ compiler, deswegen der cast vor malloc!
Gut nacht!
-
curry-king: wozu malloc? und wieso nur so wenig (sizeof irgendwas)?
im ernst, strcat()... ist dein code absichtlich so abartig oder schreibst du selten c?/* * --------------------------------------------------------------------------------- * "THE BEER-WARE LICENSE" (Revision 42): * <christoph.rackwitz@gmail.com> wrote this file. As long as you retain this notice * you can do whatever you want with this stuff. If we meet some day, and you think * this stuff is worth it, you can buy me a beer in return -- Christoph Rackwitz * --------------------------------------------------------------------------------- */ #include <stdio.h> #include <string.h> int bindump(char *from, size_t fromlen, char *to, size_t tolen) { unsigned i = fromlen<<3; if (tolen <= i) return -1; to[i] = 0; while (i--) to[i] = 060 + (from[i>>3] >> (i&7) & 1); return 0; } int main(int argc, char **argv) { char *src = "Hallo, Welt!"; char dst[200]; char *check = "00010010100001100011011000110110111101100011010000000100111010101010011000110110001011101000010000000000"; puts(bindump(src, strlen(src)+1, dst, sizeof dst) ? "life sucks!" : dst); puts(strcmp(check, dst) ? "i am broken" : "yay!"); return 0; }
Edits 1-6: Code geaendert.
Edit 7: ich will nen Style Contest!
Edit 8: vielleicht nicht der letzte Edit...
Edit 9: ich habs doch gewusst!