Red de conocimientos sobre prescripción popular - Conocimiento del confinamiento - ¿Cómo mover números a la izquierda usando el lenguaje VB? ¿Muévete bien?

¿Cómo mover números a la izquierda usando el lenguaje VB? ¿Muévete bien?

El primer paso es convertir la variable entera (números positivos y negativos) en un número binario y almacenarlo en un byte (0 a 1).

Atenuar MyB(1) como byte

Si N & gt entonces = 0

Myb(0)= N \ 256 //bit alto

Myb(1)= N mod 256 //bit bajo

Otros

tmp = N *(1)

Myb(0)= tmp \256

Myb(1)= tmp mod 256

Myb(0)= Not(Myb(0)and & amp; H80) //Invierte el bit de signo.

Myb(1)= Not(Myb(1))+1

//Las dos líneas anteriores son la representación binaria del número positivo N, seguida del bit más alto 1 (este es el código original -N).

//Todos los bits se invierten y terminan en +1, que es la forma complementaria de -N. Los números negativos se almacenan en la computadora como su complemento.

Terminará si...

Después de la conversión, hay una operación de desplazamiento, lo que significa que el código de operación es el siguiente (suponiendo que desee mover N bits).

Para i=1 a N

SaveHi = Myb(0)'Guarde el bit alto para determinar si se ingresa 1 en el byte de orden inferior cuando se desplaza hacia la derecha.

El siguiente es el desplazamiento a la derecha ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '

Myb(0) = Myb(0) \ 2 'Moverse hacia la derecha no se desbordará.

Myb(1)= Myb(1) \ 2

Si ((SaveHi and & amph 1)= & H1) Entonces

Myb( 1) = Myb(1) o & ampH80

Terminará si...

Entonces

Lo mismo si te mueves hacia la izquierda:

Para i=1 a N

SaveLo = Myb(1)'Guarde el bit bajo para determinar si se ingresa 1 en el byte de orden superior cuando se desplaza hacia la izquierda.

El siguiente es el desplazamiento a la derecha ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '

Myb(0) = (Myb(0) * 2)HFF: Tome el excedente, de lo contrario se desbordará.

Myb(1) = (Myb(1) * 2)HFF

Si ((SaveLo y & amph80) = & H1) entonces

Myb( 0) = Myb(0) o & ampH01 'Agrega uno a la posición alta

Si... terminará

Entonces