webForumDet fria alternativet

Right shift (>>) i VB?

4 svar · 387 visningar · startad av Gorekex

GorekexMedlem sedan okt. 200179 inlägg
#1

Är det någon som kan hjälpa mig med detta?

Jag beöver utföra följande matematiska operation i VB:

res = (x ^ (y >> 8))

Såhär skriver man i C/C++ men hur gör man i VB?
Jag antar att ^ funkar även i VB men hur gör man right (eller left för den delen) shift? :q

liljaMedlem sedan juli 20041 183 inlägg
#2

så skriver man väl inte i C++? Jag har fått lära mig att om man violl ha upphöjt med så får man ta sqrt() för att få det...

Ex. 2sqrt(2) = Två upphöjt med två vilket är 4...

Fungerar det? Ska strax börja läsa VB .Net i skolan och kanske kan hjälpa dig snart ifall det inte fungerar...

GorekexMedlem sedan okt. 200179 inlägg
#3

Det var nog fel av mig att kalla det för "matematiska operation"... *ber om ursäkt*
Det jag är ute efter är egentligen bit-manipulation. Jag vill alltså inte ha "upphöjt till" utan vill ha en bitvis operation för "exklusivt eller" (bitvis operator).
Med andra ord är jag ute efter att "shifta" y åtta bitar åt höger och det resultatet ska göras en "exklusiv bitvis eller-jämförelse" mot x.
Tror jag. Eller tvärtom. Min C är alldeles för rostig för att jag ska komma ihåg vilken ordning operatorerna tas... :r

Jag skulle bli väldigt tacksam om jag kunde få veta om detta går i VB eller inte!
Och tack för svaret lilja (kolla gärna upp om det går i VB .Net)!

nitro2k01Medlem sedan aug. 20039 342 inlägg
#4
res = (x xor (y \ (2 ^ 8) ))

Detta går att simulera med en division. För vänsterskift byts \ ut mot *. \ betyder heltalsdivision i VB. ^ betyder upphöjt till, och är i detta fall korrekt placerad.

GorekexMedlem sedan okt. 200179 inlägg
#5

Tack nitro2k01! :f
Ska prova detta!

137 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)