webForumDet fria alternativet

Bitshift i VB.NET

2 svar · 331 visningar · startad av fredrik

fredrikMedlem sedan dec. 19991 072 inlägg
#1

Jag behöver göra en "Right-bitshift" på ett tal men jag får det inte att fungera.

Jag vet att man i C# och i VB.NET2003 kan göra detta enkelt, men det ska ju även funka att göra det rent mattematiskt med...

Ex:

Dim Val1 as Byte

'Flytta 2 steg --> höger
Val1 = CByte(7/(2^2))

Detta borde väl rimligtvis bli 1?

0000 0111 --> 0000 0001

Alltså 1...?

Men jag får resultatet 2...som är:
0000 0010 som inte stämmer alls...?

Är jag fel ute med mina uträkningar tro?

nikoMedlem sedan juni 20022 599 inlägg
#2

Det är nog en avrundningsgrej som försvinner om du kör heltalsdivision:

CByte(7\(2^2))

fredrikMedlem sedan dec. 19991 072 inlägg
#3

Tack! Funkar perfekt...

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