Ottenere il byte superiore e inferiore di un numero intero in C# e metterlo come un array di carbone da inviare a una porta COM, come?

StackOverflow https://stackoverflow.com/questions/5419453

Domanda

In CI lo farebbe

numero int = 3510;

Char Upper = Numero >> 8;

char inferiore = numero && 8;

SendByte (superiore);

SendByte (inferiore);

Dove superiore e inferiore sarebbe entrambi = 54

In C# sto facendo questo:

            int number = Convert.ToInt16("3510");
            byte upper = byte(number >> 8);
            byte lower = byte(number & 8);
            char upperc = Convert.ToChar(upper);
            char lowerc = Convert.ToChar(lower);
            data = "GETDM" + upperc + lowerc;
            comport.Write(data);

Tuttavia, nel numero di debugger = 3510, superiore = 13 e inferiore = 0 non ha senso, se cambio il codice in >> 6 superiore = 54 che è assolutamente strano.

Fondamentalmente voglio solo ottenere il byte superiore e inferiore dal numero a 16 bit e inviarlo dalla porta COM dopo "GetDM"

Come posso fare questo? È così semplice in C, ma in C# sono completamente sconcertato.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top