Buongiorno,
altro test di stamani, cn cui sto provando.
questa è la variante senza test. Mi spiego meglio, ho provato a isolare Guidvalue per vedere se l'operazione guidvalue del powershell mi veniva fuori lo stesso coefficiente.
la risultante del test prevedeva il calcolo di powershell della riga modificata in questa maniera
$guidValue = (0x0FFFFFFFFFFFFFFFL -shr ($guidClass * 4))
la risultante da 4294967295
su vb.net invece ho provato come sopra
guidValue = shr(&HFFFFFFFFFFFFFFFL, (Guidclass * 4))
la risultante che torna invece è 4294967296
questa è la prima differenza, se invece lo posto integrale ossia come dovrebbe essere
$guidValue =$guid -band (0x0FFFFFFFFFFFFFFFL -shr ($guidClass * 4))
la risultante diventa GUIDVALUE 23518384
mentre in vb.net è 0 sotto espressione.
GuidValue = datas And shr(&HFFFFFFFFFFFFFFFL, (Guidclass * 4))
ora quello che non so è, ho tradotto male la formula di sopra?
Oppure la funzione SHR è sbagliata?
Public Function shr(ByVal Value As Int64, ByVal Shift As Byte) As Int64
Dim i As Byte
shr = Value
If Shift > 0 Then
shr = Int(shr / (2 ^ Shift))
End If
End Function
Oppure ancora ho sbagliato a dichiarare le variabili?
Dim Guidclass As Int64
Dim guidID As Int64
Dim guidValue As Int64
Dim datas As Int64
ho provato a dichiararle anche come long ma senza risultato.