je lisais l'aide et j'ai retenue surtout ceci
Code : Tout sélectionner
f.b=-128 >> 1 ; La valeur de 'f' sera -64. -128=%10000000, -64=%11000000. Lors du décalage, le bit le plus fort reste (conservation du signe).
Code : Tout sélectionner
f.b=-128 >> 1 ; La valeur de 'f' sera -64. -128=%10000000, -64=%11000000. Lors du décalage, le bit le plus fort reste (conservation du signe).
Code : Tout sélectionner
Procedure EstNegatif(Entier.q)
ProcedureReturn (Entier >> 63) & 1
EndProcedure
b.b = -5
w.w = -5
l.l = -5
q.q = -5
Debug EstNegatif(b)
Debug EstNegatif(w)
Debug EstNegatif(l)
Debug EstNegatif(q)
Code : Tout sélectionner
test = 0
! mov ax, 10010100b
! mov word [v_test], ax
! mov ecx,8
!shift:
! shr word [v_test], 1 ; shift right
! jb egal_1 ; si CF (carry flag) = 1
! push ecx
Debug "0"
! pop ecx
! jmp cont
!egal_1:
! push ecx
Debug "1"
! pop ecx
!cont:
! loop shift
Code : Tout sélectionner
bin = %10010100
While bin
Debug bin & 1
bin >> 1
Wend
Code : Tout sélectionner
bin = %10001000100010001000100010010100
Debug bin
While bin
Debug bin & 1
!shr dword [v_bin], 1
Wend