Red de conocimiento informático - Aprendizaje de código fuente - Calculadora hexadecimal con lenguaje sencillo.

Calculadora hexadecimal con lenguaje sencillo.

Modificado según su solicitud

.Versión 2

.Ventana de ensamblaje 1

.Variable de ensamblaje T1, entero

.Variable de ensamblaje T2, entero

.Subrutina __Ventana de inicio_Creada

T1 = 0

T2 = 0

.Rutina de subrutina _Se hizo clic en el botón 2

.Variable local i, número entero

. Variable local a, texto

. Variable local b, número entero

. Variable local c, texto

. Variable local d, número entero

. Variable local temporal, entero

. Variable local segunda, entero

Variable local e1, entero largo

. Variable local e, entero largo, estática

Variable local e2, entero largo

T2 = 0

a = editbox1.content ' No es necesario explicar cuándo asignando valor

b = Obtener la longitud del texto (a) 'La longitud del texto obtenida es la longitud del número hexadecimal

. El primer ciclo de conteo (b, i) 'Obtener números hexadecimales uno por uno

c = buscar la mitad del texto (a, i, 1) 'Comenzar a buscar

d = buscar text ("ABCDEF", c, 0, true) ' Encuentra cualquier carácter ABCDEF

. If true (d≠ -1) ' Si existe alguno de estos caracteres mira sus posiciones

Temporal = 9 d ' Si está en la primera posición, que es A, que es 10, entonces es 9 1, depende de qué número sea D.

Si es verdadero final

.Si es verdadero (d = -1) ' Si es un número, como 0123456789, simplemente muéstrelo

Interim = a entero (c)

.If true end

' El siguiente es el algoritmo, por ejemplo: 5BB 5*16^2 11*16^1 11*16^0 = 1467

Subdivisión= b - i ' Por ejemplo: 5BB Si es el primer dígito, es 3-1 =2 2 subdivisiones

e1 = e1 temporal × Buscar número de subdivisión (16, número de subdivisión)

.El bucle de conteo termina ()

a = editbox2.content 'Asignación, no es necesario decir nada

b = buscar longitud del texto (a) ' buscar longitud del texto es la longitud del número hexadecimal

. El primer ciclo de conteo (b, i) 'Obtiene los números hexadecimales uno por uno

c = busca la mitad del texto (a, i, 1) 'Empezar a obtener

d = buscar texto ("ABCDEF", c, 0, true) 'Encontrar cualquier carácter ABCDEF

.

If true (d≠ -1) ' Si existe alguno de estos caracteres mira sus posiciones

Temporal = 9 d ' Si está en la primera posición, que es A, que es 10, entonces es 9 1, depende de qué número sea D.

Si es verdadero final

.Si es verdadero (d = -1) ' Si es un número, como 0123456789, simplemente muéstrelo

Interim = a entero (c)

.Si es verdadero, finaliza

Segunda potencia = b - i ' Por ejemplo, si 5BB es el primer dígito, entonces 3-1 = 2 Segunda potencia

e2 = e2 temporal × exponenciación (16, potencia)

. Contar el final del bucle()

. Si (T1 = 0)

T1 = 1

e = e1 e2

En caso contrario

e = e e2

. contenido = toma texto hexadecimal (e)

. Haga clic en la subrutina _Botón 1_

Variable local i, entero

Variable local a, tipo de texto

. Variable local b, número entero

. Variable local c, tipo texto

. Variable local d, número entero

. Variable local temporal, entero

. Variable local segunda, entero

Variable local e1, entero largo

. Variable local e2, entero largo

Variable local e, entero largo, estática

T1 = 0

a = editbox1.content ' Asignación, no se requiere más

b = Obtener la longitud del texto (a) ' Obtener la longitud del texto como un número hexadecimal

. El primer ciclo de conteo (b, i) 'Obtener números hexadecimales uno por uno

c = buscar la mitad del texto (a, i, 1) 'Comenzar a buscar

d = buscar text ("ABCDEF", c, 0, true) ' Encuentra cualquier carácter ABCDEF

.

If true (d≠ -1) ' Si existe alguno de estos caracteres mira sus posiciones

Temporal = 9 d ' Si está en la primera posición, que es A, que es 10, entonces es 9 1, depende de qué número es D

.End if true

.If true (d = -1) ' Si es un número, como 0123456789, luego simplemente muéstrelo

Interim = to integer (c)

.If true end

' El siguiente es el algoritmo, por ejemplo: 5BB 5*16 ^2 11*16^ 1 11*16^0 = 1467

Subdivisión = b - i ' Por ejemplo: 5BB si es el primer dígito, entonces es 3-1 =2 2 subdivisiones

e1 = e1 temporal

b = buscar longitud del texto (a) ' buscar longitud del texto es la longitud del número hexadecimal

El primer ciclo de conteo (. b, i) ' obtener uno por uno números hexadecimales

c = buscar la mitad del texto (a, i, 1) ' Comenzar a obtener

d = buscar texto ("ABCDEF" , c, 0, true ) 'Encuentra cualquier carácter ABCDEF

. If true (d≠ -1) ' Si existe alguno de estos caracteres mira sus posiciones

Temporal = 9 d ' Si está en la primera posición, que es A, que es 10, entonces es 9 1, depende de qué número sea D.

Si es verdadero final

.Si es verdadero (d = -1) ' Si es un número, como 0123456789, simplemente muéstrelo

Interim = a entero (c)

.Si es verdadero, finaliza

Segunda potencia = b - i ' Por ejemplo, si 5BB es el primer dígito, entonces 3-1 = 2 Segunda potencia

e2 = e2 temporal × exponenciación (16, potencia)

. Contar el final del bucle()

. si (T2 = 0)

e = e1 - e2

T2 = 1

. En caso contrario

e = e - e2

. contenido = toma texto hexadecimal (e)

. Subroutine_EditBox1_content cambiado

T1 = 0

T2 = 0

Subroutine_EditBox2_ContentsChanged

T1 = 0

T2 =. 0

El resto debería estar bien. Si tienes alguna pregunta, por favor agrégame 450268441