Wie konvertieren von integer zu unsigned char in C, gegeben ganze zahlen größer als 256?

Als Teil meiner CS habe mir natürlich schon einige Funktionen zu verwenden. Eine dieser Funktionen einen Zeiger auf unsigned chars zu schreiben, Daten in eine Datei (ich habe diese Funktion zu nutzen, so kann ich nicht nur meine eigenen Zwecke gebaut Funktion, die anders funktioniert, BTW). Ich muss schreiben, die ein array von ganzen zahlen, deren Werte können bis zu 4095 Byte über diese Funktion (das dauert nur vorzeichenlose chars).

Allerdings bin ich Recht in der Annahme, dass ein unsigned char kann nur ein max Wert von 256, denn es ist 1 byte lang ist? Deshalb brauche ich auch mit 4 unsigned chars für jede ganze Zahl? Aber Gießen scheint nicht zu funktionieren mit größeren Werte für die ganze Zahl. Hat jemand eine Idee, wie man am besten die Umwandlung einer Integer-array in unsigned chars?

  • Zählen Sie die Anzahl der bits, die Sie brauchen, um zu repräsentieren 4095. Es ist nicht 4-Byte-Wert.
  • Auch die Funktion Prototyp in deiner Frage; wird es clerer, was Ihre Zuordnung bestimmten und erhalten Sie eine bessere Antwort.
  • Aber manchmal ist es einfacher dump sizeof(int) bytes für jede int. Auf diese Weise können Sie führen Sie durch das array die zimmerreserviereung, ohne das einstellen der Zeiger nach jeder Daten-Element, wenn re-Lektüre.
Schreibe einen Kommentar