Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
026:iniciacion [d/m/Y H:i] – miguel | 026:iniciacion [d/m/Y H:i] (actual) – miguel | ||
---|---|---|---|
Línea 69: | Línea 69: | ||
Entonces: | Entonces: | ||
- | 613451) | + | 613451D |
+ | |||
+ | Recuerde nuevamente que el equivalente hexadecimal de 14D es EH, el de 15 es FH y el de 10D es AH. | ||
Igual que en base diez, añadir ceros a la izquierda de un número entero hexadecimal no altera el valor. El mismo número representan 34AH y 0034AH. | Igual que en base diez, añadir ceros a la izquierda de un número entero hexadecimal no altera el valor. El mismo número representan 34AH y 0034AH. | ||
Línea 75: | Línea 77: | ||
El siguiente programa convierte un número decimal a hexadecimal. | El siguiente programa convierte un número decimal a hexadecimal. | ||
- | 10 rem programa DE conversion de decimal r hexrdecimal | + | <code basic> |
- | 20 let b $ = " " | + | 10 REM PROGRAMA DE CONVERSION DE DECIMAL A HEXADECIMAL |
+ | 20 LET B$="" | ||
+ | 30 INPUT " | ||
+ | 40 IF A=0 THEN PRINT B$: GO TO 20 | ||
+ | 50 LET C=INT (A/16): LET R=A-16*C | ||
+ | 60 LET C$=STR$ (R) | ||
+ | 70 IF R>10 THEN LET C$=CHR$ (55+R) | ||
+ | 80 LET B$=C$+B$ | ||
+ | 90 LET A=C | ||
+ | 100 GO TO 40 | ||
- | 30 input " | + | </code> |
- | + | ||
- | 4-0 if fl =0 then print b* go to 20 | + | |
- | + | ||
- | 50 let c=int (fl/16): let r=fl-1 6*c | + | |
- | + | ||
- | 60 let c*=str$ (r) | + | |
- | + | ||
- | 70 if r > 10 then let c»=chr$ (5 5 + r) | + | |
- | + | ||
- | 80 let b$=c$+bí | + | |
- | + | ||
- | 90 let r=c | + | |
- | + | ||
- | 100 go to 40 | + | |
Para la conversión de hexadecimal a decimal pruebe el siguiente programa: | Para la conversión de hexadecimal a decimal pruebe el siguiente programa: | ||
- | 10 REM PROGRAMA DE CONVERSION DE CUALQUIER BASE ENTRE 2 Y 16 A BASE 10 | + | <code basic> |
- | + | ||
- | 20 INPUT " base ? = " i B: IF B < 2 OR B >16 THEN GO TO 140 30 INPUT " | + | |
- | + | ||
- | 0 | + | |
- | + | ||
- | 40 FOR 1=0 TO LEN (A$)-1 50 LET A=CODE (A»(LEN <A$)-I)) 60 IF (A < 48 OR A > 57) HNO (A<55 OR A > 70 J THEN GO TO 140 | + | |
- | 70 IF A>=48 AND A<=57 THEN LET A=A-48: GO TO 90 30 LET A = A-55 90 LET C = A* IBtI) +í 100 IF A > =B THEN GO TO 140 110 NEXT I 120 PRINT C 130 GO TO 20 | + | 10 REM PROGRAMA DE CONVERSION DE CUALQUIER BASE ENTRE 2 Y 16 A BASE 10 |
+ | 20 INPUT " | ||
+ | 30 INPUT " | ||
+ | 40 FOR I=0 TO LEN (A$)-1 | ||
+ | 50 LET A=CODE (A$(LEN (A$)-I)) | ||
+ | 60 IF (A<48 OR A>57) AND (A<65 OR A>70) THEN GO TO 140 | ||
+ | 70 IF A>=48 AND A<=57 THEN LET A=A-48: GO TO 90 | ||
+ | 80 LET A=A-55 | ||
+ | 90 LET C=A*(B^I)+C | ||
+ | 100 IF A>=BTHEN GO TO 140 | ||
+ | 110 NEXT I | ||
+ | 120 PRINT C | ||
+ | 130 GO TO 20 | ||
+ | 140 PRINT " | ||
- | 140 PRINT " | + | </ |
- | En los dos programas anteriores, el número tecleado debe ser positivo | + | En los dos programas anteriores, el número tecleado debe ser positivo. |
- | Hasta aquí, hemos visto la conversión binaria**decimal y hexadecimal^» decimal. Veamos ahora la conversión directa | + | Hasta aquí, hemos visto la conversión binaria |
La utilidad de la base dieciséis está precisamente en que la conversión binario — hexadecimal es sencilla, directa y rápida. Además, en base dieciséis se pueden representar con pocas cifras números que en base dos necesitarían una larga tira de «unos» y «ceros». Resulta muy cómodo referirse al valor de un byte (8 bits) o de una palabra (2 bytes = 16 bit) expresándolo en base dieciséis mejor que en binario o en decimal. Con algo de practica, es muy fácil —en seguida se llega a hacer mentalmente— conocer el valor de cada bit dentro del byte (o palabra). | La utilidad de la base dieciséis está precisamente en que la conversión binario — hexadecimal es sencilla, directa y rápida. Además, en base dieciséis se pueden representar con pocas cifras números que en base dos necesitarían una larga tira de «unos» y «ceros». Resulta muy cómodo referirse al valor de un byte (8 bits) o de una palabra (2 bytes = 16 bit) expresándolo en base dieciséis mejor que en binario o en decimal. Con algo de practica, es muy fácil —en seguida se llega a hacer mentalmente— conocer el valor de cada bit dentro del byte (o palabra). | ||
- | Para la conversión directa de binario a hexadecimal separamos el número binario en grupos de cuatro bits, co- | + | Para la conversión directa de binario a hexadecimal separamos el número binario en grupos de cuatro bits, comenzando por la derecha. Si alguno faltara en el último grupo (el de la izquierda) se añaden ceros, lo que no altera el número. A continuación, |
- | menzando por la derecha. Si alguno faltara en el último grupo (el de la izquierda) se añaden ceros, lo que no altera el número. A continuación, | + | {{ : |
- | 01011001111 IB = 59FH \___/ | + | Y el número 101110100011B es en hexadecimal: |
- | II II II 5 9 F Y el número 101110100011B es en hexadecimal: | + | {{ :026: |
- | J 01 U 010P01 \ B = BA3H II II II B A 3 Obsévese | + | Obsérvese |
- | 00000000B = 00H 1111111 IB = FFH = 2551) La conversión de hexadecimal a binario directa consiste en hacer justo lo contrario. Es decir, cada cifra hexadecimal se convierte a su equivalente binario (Tabla 1), escribiendo cada uno de los dígitos hexadecimales con cuatro bits y en el mismo orden. Por ejemplo, el hexadecimal, | + | 00000000B = 00H |
+ | 11111111B | ||
- | A31F11 = 101000111)001,111 IB | + | La conversión de hexadecimal a binario directa consiste en hacer justo lo contrario. Es decir, cada cifra hexadecimal se convierte a su equivalente binario (Tabla 1), escribiendo cada uno de los dígitos hexadecimales con cuatro bits y en el mismo orden. Por ejemplo, el hexadecimal, |
- | II II II II A 3 1 F | + | {{ : |
y el | y el | ||
- | 3 E911=001111101001 B= 1111101001B II li II | + | {{ : |
- | 3 E 9 | + | El hexadecimal: |
- | F.I hexadecimal: | + | FFFFH = 1111111111111111B = 65535D |
- | FFFFI1 = 111111111111111 IB = = 65535D | + | se corresponde con la dirección más alta de la memoria del Spectrum de 64 Kbyte (1 Kbyte = 2< |