webForumDet fria alternativet

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

.NET

14 svar · 548 visningar · startad av PatrikB

Medlem sedan mars 20002 836 inlägg
Frågan#1

Hello!

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

x >>= y

cya,
PatrikB

Medlem sedan juni 2002151 inlägg
#2

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

Medlem sedan mars 20002 836 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

Medlem sedan juni 20022 599 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.

Medlem sedan juni 20011 732 inlägg
#5

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

Medlem sedan juni 20022 599 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.

Medlem sedan mars 20002 836 inlägg
#7

tackar, tackar

tror jag "greppar" det

cya,
PatrikB

Medlem sedan juni 20022 599 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

Medlem sedan juni 20011 732 inlägg
#9

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

Medlem sedan mars 20023 561 inlägg
#10

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

Medlem sedan mars 20002 836 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

Medlem sedan mars 20002 836 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

Medlem sedan juni 20022 599 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.

Medlem sedan mars 20002 836 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

Medlem sedan juni 20022 599 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).

271 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
141 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
140 ms — ändringar (db)