QByteArray und Hexadezimalen >7f =Warnung

Dein Thema passt einfach in kein Forum? Dann probiers mal hier.
Antworten
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

QByteArray und Hexadezimalen >7f =Warnung

Beitrag 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:)
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Meintest du vielleicht >ff? Dann kannst du (char)0x1ff schreiben, ansonsten kann ich deinen Fehler/Warnung nicht nachvollziehen.
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag 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.
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag 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 ...
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

Was für eine Konstruktion:)
Ich meine es geht ja auch so. Sieht halt nur unschön aus.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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 ;) )
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag 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:)
Antworten