Någon som har något knep på hur man ska addera två bytes och spara resultatet i en integer? Bugar och tackar... Dim byte2 As Byte Är inte säker nu på om VB6 och äldre har stöd för det, men lättast gör du båda sakerna med en shift operation. Jag provade följande med då fick jag negativa tal i byte1 och byte2... I detta sammanhang kolla mitt uppskick. Modda efter behov råkade bifoga vb.net kod. (skäms skäms) <b>Hmm... Jag får inte till det med en negativ integer...</b>2 Bytes till 1 Integer...
Måste jag köra detta på bitnivå eller kan man göra något annat smart?
Exempel
Byte1 = 243 = 11110011
Byte2 = 51 = 00110011
Byte2 Byte1
Integer1 = 00110011 11110011 = 13299Sv:2 Bytes till 1 Integer...
Hur gör man på andra hållet då? Om man vill splitta en integer till två bytes?
Jag har försökt ett antal olika sätt men jag får inte till det när det är negativa tal.
Jag har provat följande för att splitta en integer till två bytes.
txtInteger.Text = "-32767"
txtLoByte.Text = txtInteger.Text And &HFF&
txtHiByte.Text = (txtInteger.Text And &HFF00&) / 256
Ovanstående ger 1 i txtLoByte.text och 128 i txtHiByte.txt
När jag sedan trycker in 1 och 128 i nedanstående så får jag 32769 i txtInteger.Text
txtInteger.Text = (txtHiByte.Text * 256) + txtLoByte.Text
Vad gör jag för fel?Sv: 2 Bytes till 1 Integer...
Dim byte1 As Byte
Dim int1 As Integer = 13299
byte2 = int1 Mod 256
byte1 = int1 \ 256Sv: 2 Bytes till 1 Integer...
<code>
Dim a As Byte
Dim b As Byte
a = 100
b = 200
Dim c As Integer
c = a << 8 + b
</code>
För att sedan splitta upp det i två byte gör du i princip tvärt om
<code>
Dim a As Byte
Dim b As Byte
Dim c As Integer
c = 32154
a = (c >> 8) And 256
b = c And 256
</code>
Inte testat och det var evigheter sen jag skrev gammal VB.Sv:2 Bytes till 1 Integer...
Detta verkar vara en svår nöt att knäcka...
Dim byte1 As Byte
Dim byte2 As Byte
Dim int1 As Integer
int1 = -32767
byte2 = int1 Mod 256
byte1 = int1 \ 256
Vad jag vet stödjer VB6 int << och >>...Sv: 2 Bytes till 1 Integer...
Programarkivet:HiWord LoWord spara minne
Programarkivet:Omvandla VB Long till Bits
Programarkivet:Binary konvertera.Sv:2 Bytes till 1 Integer...
men funkar Thomas kod så är ju saken löst.Sv: 2 Bytes till 1 Integer...
Spånar snabbt och fel. Känn av minustecknet och multiplicera svaret med -1