webForumDet fria alternativet

C# operators -----> VB.NET operators

14 svar · 546 visningar · startad av PatrikB

PatrikBMedlem sedan mars 20002 713 inlägg
#1

Hello!

Har denna C# kod och undrar vad motsvarande VB.NET kod är:

x >>= y

cya,
PatrikB

ptypeMedlem sedan juni 2002151 inlägg
#2

vad betyder det i C#? har jag aldrig sett förut

PatrikBMedlem sedan mars 20002 713 inlägg
#3

He, He ... det är det jag oxå undrar.
Håller på och konverterar C# -kod till VB.NET kod .... men, det vart stopp där ...

cya,
PatrikB

nikoMedlem sedan juni 20022 415 inlägg
#4

Med risk för att göra bort mig, men jag tror inte det finns nån bitshiftsoperator i VB.NET. Man får nog göra det manuellt:

x = x \ (2 ^ y)

.. eller nåt liknande.

NETworkMedlem sedan juni 20011 679 inlägg
#5

Vad är en bitshiftsoperator, något som växlar mellan 0 och 1 eller?

nikoMedlem sedan juni 20022 415 inlägg
#6

NETwork skrev:

Vad är en bitshiftsoperator, något som växlar mellan 0 och 1 eller?

Nej, inte direkt. Bitskiftning innebär att man flyttar alla bitar i ett antal bytes ett bestämt antal steg åt antingen höger eller vänster och fyller på med nollor från andra hållet.

(x >>= y) <=> (x=x>>y) (jämför: x+=y <=> x=x+y)

vi ska alltså flytta alla bitar i x, y steg åt höger.

Exempel:

(128>>2) = (10000000>>2) = 00100000=32

Att skifta y steg åt höger är samma sak som att dividera med 2^y.
Att skifta y steg åt vänster är samma sak som att gånga med 2^y. Tex: 32<<2=32*4=128.

PatrikBMedlem sedan mars 20002 713 inlägg
#7

tackar, tackar

tror jag "greppar" det

cya,
PatrikB

nikoMedlem sedan juni 20022 415 inlägg
#8

Verkar förresten som om MS upptäckt "missen" och ändrat i VB.NET 2003:

There are two main changes I found in VB.Net 2003 and also read on MSDN. In this article I will explain them in brief.
Those are:
1.Variable declaration for Loops and their scope.
2.Bit Shift operators

Källa: http://www.w3coder.com/vbnet/VBNet2003New.aspx

NETworkMedlem sedan juni 20011 679 inlägg
#9

Aha, ok tack för den lektionen. :)

JosefMedlem sedan mars 20023 123 inlägg
#10

Har du något konkret exempel på när man skulle behöva sån här "bitshifting"?

PatrikBMedlem sedan mars 20002 713 inlägg
#11

Jepp,

exemplet som jag hittade där jag försöker att konvertera till VB.NET från C# är skrivning till en MemoryStream.

Tackar för det länken

cya,
PatrikB

PatrikBMedlem sedan mars 20002 713 inlägg
#12

Postade samma fråga på https://www.asp.net forumet och fick till slut detta svar från en i ASP.NET Teamet:

VB.NET doesn't have the "(op)=" shortcuts that C, C++ and C# have. However, it does have the same bit shift operator. The equivalent expression would be:

x = x >> y

cya,
PatrikB

nikoMedlem sedan juni 20022 415 inlägg
#13

VB.NET doesn't have the "(op)=" shortcuts that C, C++ and C# have. However, it does have the same bit shift operator. The equivalent expression would be:

x = x >> y

Fast det är ju inte rätt. Man kan inte kompilera:

x = x >> y

.. i VB.NET. Men i VB.NET 2003 kan man, som sagt.

PatrikBMedlem sedan mars 20002 713 inlägg
#14

jepp, det är sant ..... man tänker inte på "vad andra" kör för versioner. Man blir lite "hemma blind" :e

cya,
PatrikB

nikoMedlem sedan juni 20022 415 inlägg
#15

Man blir lite "hemma blind"

Fast om jag ska vara ärlig så tror jag snarare att det är dom som har lite dålig koll. Dom skriver ju faktiskt VB.NET och inte VB.NET 2003 (vilket nästan ingen kör ännu).

125 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
122 ms — hämta tråd, inlägg och bilagor (db)