Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

05.02.2011, 15:09

Achso okay danke jetz versteh ich :D

da bleibt nur noch die Frage wie ich -0x33 so in ein String umwandel das da statt "-33" "CD" steht, also als unsigned Byte o:

lg

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

12

05.02.2011, 15:24

Sagen wir mal im Byte steht -33, wenn ich das jetz in nen Int caste kommt 0xFFFFFFCD. Laut dot wären -33 ja int Int 0x000000CD was aber bei mir so nicht stimmt.

Nein, das hat dot nicht gesagt. -33 als int (also 32 Bit) ist 0xFFFFFFCD. -33 als byte (also 8 Bit) ist 0xCD. Für unsigned Datentypen kommt da für 0xCD natürlich 205 raus. Letztendlich ist 0xCD auch nur eine hexadezimale Darstellung einer Bitfolge. Und als welche dezimale Zahl diese Folge interpretiert wird (oder andersrum [wie eine Zahl als Bitfolge dargestellt wird]), das hängt von der Interpretation ab.
Diese sind natürlich für PCs normiert wie oben angegeben.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

13

05.02.2011, 15:43

da bleibt nur noch die Frage wie ich -0x33 so in ein String umwandel das da statt "-33" "CD" steht, also als unsigned Byte o:

Wofür brauchst du das, ist gar nicht so einfach hinzubekommen in C# weil das eigentlich nie jemand macht. Im schlechtesten Fall musst dus dir halt selber schreiben...

CodingCat

1x Contest-Sieger

Beiträge: 420

Beruf: Student (KIT)

  • Private Nachricht senden

14

05.02.2011, 17:35

C#-Quelltext

1
2
3
int value = -0x33;
String stringValue = String.Format( "{0:X}", unchecked((Byte) value) );
// stringValue enthält jetzt "CD"
alphanew.net (last updated 2011-06-26) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

15

05.02.2011, 18:02

Er will aber aus 0xCD -0x33 machen wenn ich ihn richtig verstanden hab ;)

CodingCat

1x Contest-Sieger

Beiträge: 420

Beruf: Student (KIT)

  • Private Nachricht senden

16

05.02.2011, 18:38

Hm, also bei mir steht da "[...] in einen String umwandle, sodass da [...] "CD" steht". ;)

Der Vollständigkeit halber lässt sich aus dem String natürlich auch wieder die Zahl machen:

C#-Quelltext

1
2
SByte value = SByte.Parse("CD", System.Globalization.NumberStyles.HexNumber);
// value ist jetzt == -0x33
alphanew.net (last updated 2011-06-26) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »CodingCat« (05.02.2011, 18:51)


17

05.02.2011, 19:59

Danke euch :)

wenn ich zuhause bin teste ich es. Sehe dass ihr C# code nutzt, gucken ob das auch in Java geht ^^

lg

edit: okay komisch, bei mir kommt dann, wenn das Byte negativ ist einfach {0:X} als String, also bei der Ausgabe ?(

Quellcode

1
2
3
4
5
6
7
8
9
10
for(byte b : data)
        {
            if(b>=0)
            s+=Integer.toString(b, 16)+ " ";
            else
            {
                String stringValue = String.format( "{0:X}", ((byte) b) );
                s+= stringValue + " ";
            }
        }

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Unknown« (05.02.2011, 20:06)


CodingCat

1x Contest-Sieger

Beiträge: 420

Beruf: Student (KIT)

  • Private Nachricht senden

18

05.02.2011, 23:55

Na sag doch gleich dass es um Java geht, hier gehts zur entsprechenden Dokumentation: http://download.oracle.com/javase/6/docs…ter.html#syntax

Konkret orientiert sich Java in diesem Fall mehr an C als C#:

Java-Quelltext

1
2
byte value = -0x33;
String stringValue = String.format("%X", value);
alphanew.net (last updated 2011-06-26) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite

19

06.02.2011, 12:34

Ich danke euch vielmals :)

genau das war es was ich gesucht hab

lg

Werbeanzeige