Welcher Datentyp? 65136 = hxFE70 = -400

Persönliche Seite #5025909
Lesenswert?

Der Wert 0xfe70 ist ein vorzeichenbehafteter 16-Bit-Wert, dargestellt im 
Zweierkomplement.

In C kann man das so "umrechnen":
1
int16_t x = (int16_t) 0xfe70u;

Oder, um es ohne Compiler nachvollziehen zu können:

Windows-Taschenrechner aufrufen, auf "Programmierer" einstellen, "WORD" 
als Datentyp auswählen, auf Hex stellen, 0xfe70 eingeben, auf Dez 
stellen und ... -400 angezeigt bekommen.
Gast #5026052
Lesenswert?

Sapperlot W. schrieb:
> Nee. Ob Vorzeichen behaftet laesst sich aufgrund der Hex Schreibweise
> nicht bestimmen.

Aha... Sowas kann aber auch nur von einem Informatiker kommen.

Selbstweständlich geht das. Erstes Bit (in dem Falle also das ganz links 
stehende Bit in "F") gesetzt = negative Zahl. Was ist daran soooo 
schwer?

Ein halbwegs tauglicher Programmierer sollte zumindest die Hex-Zahlen 
0-F kennen und beherrschen.
Beitrag #5026059 wurde von einem Moderator gelöscht.
Gast #5026603
Lesenswert?

Rufus Τ. F. schrieb:
> S. R. schrieb:
>> Bei einem uint32_t ist das ganz links stehende Bit kein Vorzeichenbit.
>
> Nochmal: Lesen und Verstehen:
>
> Datn schrieb:
>> Laut Hersteller ist das Format Signed Short.
>
> (Hervorhebung von mir)

Eben, laut Hersteller.

Aber aus dem Hex-Wert allein kann man nicht ablesen,
ob er signed oder unsigned ist.
#5027241
Lesenswert?

Rufus Τ. F. schrieb:
> Natürlich nicht, aber die Fragestellung gleitet dann auch irgendwie ins
> Bizarre ab.

Da im Eingangsbeispiel -400 genannt wurde, ist von vorzeichenbehafteten 
Zahlen auszugehen. Ich hab das nur nicht explizit dazugeschrieben, dass 
mir das auch klar war.

Einer Hexzahl sieht man ihre Interpretation grundsätzlich nie an, es 
braucht immer zusätzliche Informationen.
Gast #5027268
Lesenswert?

bastler schrieb:
> Aber aus dem Hex-Wert allein kann man nicht ablesen,
> ob er signed oder unsigned ist.

Man kann es mit der Genauigkeit aber auch übertreiben. Das ist ziemlich 
mühsam hier und macht dann auch kein Spass mehr zu helfen.

Weil:

Datn schrieb:
> Laut Hersteller ist das Format Signed Short.

Reicht völlig.

Datn schrieb:
> Ist das jetzt eigentlich Little Indian oder Big Indian?
>
> Kapier das unter Vb.net noch nicht so richtig.

Intel ist little Endian.

Grüsse,
René
Gast #5027543
Lesenswert?

René H. schrieb:
> bastler schrieb:
>> Aber aus dem Hex-Wert allein kann man nicht ablesen,
>> ob er signed oder unsigned ist.
>
> Man kann es mit der Genauigkeit aber auch übertreiben.

Ausgangspunkt dieser überflüssigen Diskussion
war dieser Beitrag:

fft schrieb:
> Sapperlot W. schrieb:
>> Nee. Ob Vorzeichen behaftet laesst sich aufgrund der Hex Schreibweise
>> nicht bestimmen.
>
> Aha... Sowas kann aber auch nur von einem Informatiker kommen.
>
> Selbstweständlich geht das. Erstes Bit (in dem Falle also das ganz links
> stehende Bit in "F") gesetzt = negative Zahl. Was ist daran soooo
> schwer?
>
> Ein halbwegs tauglicher Programmierer sollte zumindest die Hex-Zahlen
> 0-F kennen und beherrschen.

Darauf kam diese Antwort:

S. R. schrieb:
> fft schrieb:
>> Selbstweständlich geht das. Erstes Bit (in dem Falle also das ganz links
>> stehende Bit in "F") gesetzt = negative Zahl. Was ist daran soooo
>> schwer?
>
> Bei einem uint32_t ist das ganz links stehende Bit kein Vorzeichenbit.


Es folgte dieser Widerspruch:

Rufus Τ. F. schrieb:

> Nochmal: Lesen und Verstehen:
>
> Datn schrieb:
>> Laut Hersteller ist das Format Signed Short.

Und ich schrieb darauf:

bastler schrieb:
> Eben, laut Hersteller.
>
> Aber aus dem Hex-Wert allein kann man nicht ablesen,
> ob er signed oder unsigned ist.

Ich habe also nur versucht, die Diskussion zu entwirren.
Aber vielleicht hätte ich mich besser nicht eingemischt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren