Seite 1 von 1

QByteArray und Hexadezimalen >7f =Warnung

Verfasst: 22. April 2007 14:22
von BartSimpson
Hallo, wenn man versucht ein QByteArray mit Hexadezimalen Zahlen zu füttern, erhält man eine Warnung, wenn der Wert >7f ist.
Was ja an sich ok währen wenn es um eine Zahl gehen würde, da man ja in ein char keine 128 stecken kann:) Nur spielt hier das Vorzeichen ja keine Rolle. Hat jemand eine Idee wie man es schreiben kann das die Compiler das auch so sehen:)

Verfasst: 22. April 2007 17:40
von upsala
Meintest du vielleicht >ff? Dann kannst du (char)0x1ff schreiben, ansonsten kann ich deinen Fehler/Warnung nicht nachvollziehen.

Verfasst: 22. April 2007 18:59
von BartSimpson
nein sobald es größer als 0x7f ist kommen unter den gcc und dem VC die Warnung. Weil die Compiler denken du versucht in eine Char Variable einen Wert größer 128 zu schreiben.

Verfasst: 23. April 2007 08:52
von RHBaum

Code: Alles auswählen

unsigned char ctest = 0xFF;
QByteArray ba(120,static_cast<char>(ctest ));
Zumindest bringts er dann bei mir keine warnungen mehr :-)

Ciao ...

Verfasst: 23. April 2007 09:39
von BartSimpson
Was für eine Konstruktion:)
Ich meine es geht ja auch so. Sieht halt nur unschön aus.

Verfasst: 23. April 2007 09:43
von Christian81
Abner es ist verständlich - QByteArray ist (signed) char, du versuchst einen unsigned char zuzuweisen. Die führt bei Werten > 0x7f dazu, dass der Wert nicht mehr so ganz passt (komisch komisch ;) )

Verfasst: 23. April 2007 09:46
von BartSimpson
Wenn man es als Zahl zuweist schon klar. Aber im einem ByteArray wird ja eh keiner Zahlen speichern wollen:) Jut der Compiler kann ja nicht hellsehen:)