Calculadora hexadecimal con lenguaje sencillo.
.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 p>
.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) p >
.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) p>
.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) p >
.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 p>
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) p >
.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