Konvertiert int zu byte als HEX in C#
Muss ich senden Sie ein Hex-string über die serielle Schnittstelle an ein Gerät, das Mach ich jetzt so:
byte[] c = new byte[3];
c[0] = 0x57;
c[1] = 0x30;
ComPort.Write(c,0,c.Length );
Nun muss ich konvertieren einen Wert von int wie 30 bis c[1] = 0x30
oder einen int-Wert von 34 gibt c[1] = 0x34
.
Ich hoffe, dass Sie sehen, was ich meine.
Also, wie kann ich Krätze?
Was werden Sie tun, wenn der Wert
die Werte sind nur zwischen 30 und 39
Ich verstehe nicht die Frage. Sie könnten versuchen zu erarbeiten, ein bisschen?
Gibt es einen anderen Weg zu schicken, um ein HEX-Befehl durch serielle Schnittstelle, die ich nur gefunden, dass ich das tun kann über das " byte[] c = new byte[3]' und danach mit ComPort.Schreiben(c,0,c.Länge );
Sie sollten vielmehr ändern Sie Ihre Eingabe, um z.B. 48 als 30, so erhalten Sie 0x30 aus.
100
?die Werte sind nur zwischen 30 und 39
Ich verstehe nicht die Frage. Sie könnten versuchen zu erarbeiten, ein bisschen?
Gibt es einen anderen Weg zu schicken, um ein HEX-Befehl durch serielle Schnittstelle, die ich nur gefunden, dass ich das tun kann über das " byte[] c = new byte[3]' und danach mit ComPort.Schreiben(c,0,c.Länge );
Sie sollten vielmehr ändern Sie Ihre Eingabe, um z.B. 48 als 30, so erhalten Sie 0x30 aus.
InformationsquelleAutor user1235288 | 2012-08-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieses format bezeichnet man binary-coded decimal. Für zweistellige zahlen, Ganzzahl-Division durch zehn und multiplizieren Sie mit sechzehn, dann fügen Sie wieder den Rest der division durch zehn:
Ein struct
UInt4
odernibble
gemacht haben könnte, dies mehr intuitiv. Dann hätte mannew nibble[6]
stattnew byte[3]
und verwenden Sie dann0x4
zusammen mit0x5
statt0x45
.was es sein wird, für n-stellige Zahl, die enthalten sein können, durch die int?Ich meine jede Zahl ausgedrückt werden als 2 byte Hex-zahlen?
InformationsquelleAutor dasblinkenlight
Einen anderen Weg, dies zu tun sein könnte
InformationsquelleAutor Jeppe Stig Nielsen
angenommen, int Data=2821; war zu senden über COM-Port:
InformationsquelleAutor Syed Raza