Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [VB.net]vb vs c++

  1. #1

    [VB.net]vb vs c++

    ciao a tutti
    visto ke in c++ esistono operatori come << o >> per lo shift a destra e a sinistra per i byte è possibile fare lo stesso in vb.net? e se si, come?
    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    200
    Sintassi:

    Result = Pattern << Amount

    Dove:

    Result
    Valore numerico integrale risultato dello spostamento dello schema di bit. Il tipo di dati corrisponde a quello di pattern.

    Pattern
    Espressione numerica integrale. Lo schema di bit da spostare. Il tipo di dati deve essere integrale (SByte, Byte, Short, UShort, Integer, UInteger, Long o ULong).


    Amount
    Espressione numerica. Il numero di bit per spostare lo schema di bit. Il tipo di dati deve essere Integer o essere convertito verso il tipo di dati più grande Integer.


    Gli spostamenti aritmetici non sono circolari. In altri termini, i bit spostati oltre una delle estremità del risultato non vengono reintrodotti all'altra estremità. In uno spostamento aritmetico a sinistra, i bit spostati oltre l'intervallo del tipo di dati del risultato vengono ignorati e le posizioni dei bit liberate a destra sono impostate su zero.

    Per impedire lo spostamento di un numero di bit superiore a quello che il risultato può contenere, il valore di amount verrà nascosto con una maschera di dimensioni corrispondente al tipo di dati di pattern. Il valore binario AND di questi valori viene utilizzato per l'entità dello spostamento. Le maschere di dimensioni sono le seguenti:

    Tipo di dati di pattern
    Maschera di dimensioni (decimale)
    Maschera di dimensioni (esadecimale)

    SByte, Byte
    7
    &H00000007

    Short, UShort
    15
    &H0000000F

    Integer, UInteger
    31
    &H0000001F

    Long, ULong
    63
    &H0000003F

    Se amount è uguale a zero, il valore di result sarà identico al valore di pattern. Se amount è negativo, verrà accettato come valore senza segno e nascosto con la maschera di dimensioni appropriata.

    Gli spostamenti aritmetici non generano mai eccezioni di overflow.

    Nota:
    L'operatore << può essere sottoposto a overload. In altri termini, una classe o una struttura può ridefinirne il comportamento quando un operando specifica il tipo di tale classe o struttura. Se il codice utilizza l'operatore su una classe o una struttura di questo tipo, è importante comprendere il comportamento ridefinito di tale operatore. Per ulteriori informazioni, vedere Routine di operatore.


    Esempio
    Visual Basic Copia codice
    Dim pattern As Short = 192
    ' The bit pattern is 0000 0000 1100 0000.
    Dim result1, result2, result3, result4, result5 As Short
    result1 = pattern << 0
    result2 = pattern << 4
    result3 = pattern << 9
    result4 = pattern << 17
    result5 = pattern << -1




    Di seguito sono riportati i risultati dell'esempio precedente:

    result1 è 192 (0000 0000 1100 0000).

    result2 è 3072 (0000 1100 0000 0000).

    result3 è -32768 (1000 0000 0000 0000).

    result4 è 384 (0000 0001 1000 0000).

    result5 è 0 (con uno spostamento di 15 posizioni a sinistra).

    L'entità dello spostamento per result4 viene calcolata come 17 AND 15, pari a 1.

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Potresti anche dividere e moltiplicare per potenze di 2 ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.