Co znamená zápis ">>" vb.net?   zodpovězená otázka

VB.NET, Algoritmy

Dobrý den

Narazil jsem na zdrojový kód a za boha nemůžu přijít na to co znamená zápis např. Dim index As Integer = y * bmd.Stride + (x >> 3) nebo Dim mask As Byte = &H80 >> (x And &H7) ? Jde mi především o ten operátor >> či co to je. Bude to asi trivialita ale opravdu nevím a proto prosím někoho kdo by mi pomohl. Předem děkuji.

Public Sub SetIndexedPixel(ByVal x As Integer, ByVal y As Integer, ByVal bmd As BitmapData, ByVal pixel As Boolean)
        Dim index As Integer = y * bmd.Stride + (x >> 3)
        Dim p As Byte = Marshal.ReadByte(bmd.Scan0, index)
        Dim mask As Byte = &H80 >> (x And &H7)
        If pixel Then
            p = p Or mask
        Else
            p = p And CByte(mask ^ &HFF)
        End If
        Marshal.WriteByte(bmd.Scan0, index, p)
    End Sub 

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Posun bitů vpravo. Vysvětleno zde:

http://msdn.microsoft.com/en-us/library/...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Je to operátor posunu bitov.Posunie všetky bity z binárného zápisu čísla(ľavý operand) do prava o hodnotu pravého operandu a tie, čo prešli cez koniec čísla zmiznú.

Napr. 4 >> 2 je 1. Pretože 4 je 00000100 a 1 je 00000001 .

Obvykle stačí vyskúšať, čo to robí pomocou niekoľkých kombinácií operandov, resp. argumentov, ak je to funkcia, a sledovať výsledok.Potom už len nájsť v tom logiku.

Alebo jednoduchšie môže byť nájsť si k tomu dokumentáciu, vo VS 2008+ intellisense zobrazeuje pri deklarácií operátoru ich zoznam, dočítal by ste sa, ako sa tá operácia volá a potom to dať do google a máte to.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback