Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/09/2005, 16:33
Avatar de lucxx
lucxx
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
Cita:
asi "10" en hexadecimal es "a" y "17" es "f1".
17 no es f1, es 11

A ver si puedo aclarar algo más, para empezar, a la hora de saber el valor de un número que nos dan en una cadena de 0's y 1's, lo primero que debemos conocer es si estamos en coma fija (números enteros) o coma flotante (números decimales). Para no liar esto mucho, y como supongo que querras una explicación simple, vamos a hacerlo en coma fija. Ahora, lo siguiente que hay que conocer es el formato de representación empleado (binario puro, signo-magnitud, complemento a 2...). De nuevo para no liarlo vamos a hacerlo con binario puro.

Cuando tenemos un número en binario, lo primero que hay que tener en cuenta es que estamos trabajando en base 2. ¿Por qué en base 2? pues porque solo tenemos 2 'símbolos': 0 y 1 (los números que utilizamos normalmente en la vida diaria son en base 10, porque hay 10 'símbolos': 0-9). Con lo cual, si a mi me dan el siguiente byte (8 bits), y suponiendo que estamos en coma fija y usamos binario puro:
Código:
 1 1 0 0 1 0 1 0  (abajo en rojo indicamos el número de bit)
 7 6 5 4 3 2 1 0 
Hacemos la suma de las potencias de base 2 correspondientes a los bits que están a 1:
2^7 + 2^6 + 2^3 + 2^1 = 128 + 64 + 8 + 2 = 202

- A la inversa: ¿cómo pasar de decimal a binario? Utilizamos la regla de Horner (vamos dividiendo el número entre 2, quedandonos con los restos y con el último cociente, tomándolos en orden inverso):

Código:
 
202 | 2
  0     101 | 2
 	  1     50 | 2
 		   0     25 | 2
 				1     12 | 2
					   0       6 | 2
						 0     3 | 2
							 1     1 
Espero que se entienda, es que no hay quien lo coloque

En cuanto a lo que dices de las letras, como dice programeitor, eso es hexadecimal (base 16 -> 16 'símbolos). la tabla de los valores en decimal es:

Código:
F	1111
E	1110
D	1101
C	1100
B	1011
A	1010
9	1001
8	1000
7	0111
6	0110
5	0101
4	0100
3	0011
2	0010
1	0001
0	0000
Lo que se hace es tomar los dígitos binarios de cuatro en cuatro; en el ejemplo anterior:
Código:
1100 1010
  C   A
que se suele escribir como CAh

- Y por último, no la vamos a dejar de lado, tenemos la notación octal (base 8; 8 símbolos: 0-7):
Código:
7	111
6	110
5	101
4	100
3	011
2	010
1	001
0	000
nuestro numero sería:
Código:
1100 1010 --> 011 001 010
   3   1   2
por lo que nuestro numero anterior, en todas las bases sería:
Código:
Decimal: 202
Binario: 1100 1010
Octal: 312
Hexadecimal: CA
Espero que te haya servido
__________________
Salu2

www.pcealcala.net