Buggfix Plus
Aktuellt datum och tid: 07.50 2020-02-21

Alla tidsangivelser är UTC + 1 timme




Svara på tråd  [ 4 inlägg ] 
Författare Meddelande
InläggPostat: 21.09 2019-09-30 

Blev medlem: 14.47 2007-12-04
Inlägg: 1163
Ort: Lidingö
C# kod
hddData.Data[5] är en Byte med värdet 1
MessageBox.Show((hddData.Data[5] << 8).ToString());
resultatet blir 256


VB.NET kod
hddData.Data(5) är en Byte med värdet 1
MsgBox((hddData.Data(5) << 8).ToString)
resultatet blir 1

Fattar inte varför det blir olika. Trodde << var samma i c# och vb.net "Binary Left Shift Operator"


Upp
 Profil  
 
InläggPostat: 21.26 2019-09-30 

Blev medlem: 14.47 2007-12-04
Inlägg: 1163
Ort: Lidingö
intressant läsning här

https://stackoverflow.com/questions/815 ... nd-c-sharp


Upp
 Profil  
 
InläggPostat: 21.31 2019-09-30 
Användarvisningsbild

Blev medlem: 10.07 2008-01-22
Inlägg: 1943
Ort: Stockholm
Resultatet av din bitshift blir i C#-fallet en implicit int.

Testa t.ex. följande:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
byte b = 1;
var x = b<<8;
      
Console.WriteLine(x.GetType().FullName);


och se vad den tycker att 'x' blir för datatyp

I VB-fallet så blir resultatet av operationen << alltid samma datatyp som det värde du skickar in.
Och för att det inte ska flöda över så kommer VB AND-maska bort allt som överstiger den datatyp du skickar in.
I fallet Byte så är masken såklart 7 och 8 AND:at med 7 blir 0.

Din operationen blir då i VB-fallet 1<<0 vilket såklart resulterar i 1.


Upp
 Profil  
 
InläggPostat: 21.33 2019-09-30 

Blev medlem: 14.47 2007-12-04
Inlägg: 1163
Ort: Lidingö
länken jag postade, har all information

C# gör ej en shift på Byte, utan konverterar en byte till int.

så "fixen" i VB.NET är att köra en CInt(min byte) << 8

är väll inte fix då det inte är något fel, i mitt fall var jag ute efter C# "resultatet"


Upp
 Profil  
 
Visa inlägg nyare än:  Sortera efter  
Svara på tråd  [ 4 inlägg ] 

Alla tidsangivelser är UTC + 1 timme


Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 1 gäst


Du kan inte skapa nya trådar i denna kategori
Du kan inte svara på trådar i denna kategori
Du kan inte redigera dina inlägg i denna kategori
Du kan inte ta bort dina inlägg i denna kategori
Du kan inte bifoga filer i denna kategori

Sök efter:
Hoppa till:  
   
Drivs av phpBB® Forum Software © phpBB Group
Swedish translation by Peetra & phpBB Sweden © 2006-2010