Registrarse

[RH - Otros] Clase 2 | U-2: Sistemas Numéricos (I)

Estado
Cerrado para nuevas respuestas.

Fran Agustín

Si el sol besa tus ojos, ni cuenta te das.
Miembro insignia

WAH'S MEORH | UNIDAD 2: SISTEMAS NUMÉRICOS

TEMA 1: ¿QUÉ ES UN SISTEMA NUMÉRICO?​

Un sistema numérico es un conjunto de símbolos usados para expresar cantidades.

Generalmente se les da nombre según su base. Por ejemplo, el sistema más difundido en la actualidad para el uso cotidiano es el sistema decimal, es decir, el de base 10.
Se preguntarán qué significa "base 10", ¿verdad? Quiere decir que usa 10 dígitos distintos para expresar las cantidades: 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9. Mediante la combinación de ellos podemos escribir distintos números.
Además, cada 10 unidades de un orden, formamos una del siguiente. ¿A qué me refiero? Por ejemplo, 10 unidades son 1 decena; 10 decenas, una centena; 10 centenas, una unidad de mil y así sucesivamente.
Probablemente algunos recuerden que en la primaria nos hacían expresar un número en lo que en Matemática llamamos forma polinómica: por ejemplo, escribíamos al 18567 como 1 decena de mil + 8 unidades de mil + 5 centenas + 6 decenas + 7 unidades.

Otro sistema que nos encontramos cotidianamente es el sexagesimal, es decir, de base 60.
¿Dónde? Les respondo con unas preguntas: ¿Cuántos segundos tiene un minuto? ¿Cuántos minutos tiene una hora? ¿Cuántos minutos tiene un grado sexagesimal?
Exactamente: con él expresamos tanto el tiempo como las cordenadas geográficas y la amplitud de los ángulos.

Es de vital importancia recordar que existen infinitos sistemas numéricos, pues podríamos emplear cualquier número que quisiéramos como base y los números son infinitos.
Sin embargo, en lo que nos concierne vamos a emplear principalmente 3 sistemas: binario, decimal y hexadecimal.

Por último, retomando el concepto de forma polinómica, recordemos que cualquier número abcd escrito en un sistema de base x puede expresarse como: a*x^3+b*x^2+c*x^1+d*x^0.
Por ejemplo:
  1. 158 base decimal = 1*10^2 + 5*10^1 + 8*10^0 = 100+50+8
  2. 101101 (binario) = 1*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 32+0+8+4+0+1 = 45
  3. F62B (hexadecimal) = F*16^3 + 6*16^2 + 2*16^1 + B*16^0 = 15*16^3 + 6*16^2 + 2*16^1 + 11 = 15*4096 + 6*256 + 2*16 + 11 = 63019


TEMA 2: DEC, HEX Y BIN (DIFERENCIAS Y USOS)​

Como ya dijimos, vamos a enfocarnos en 3 sistemas numéricos: decimal (dec), hexadeciamal (hex) y binario (bin).

¿Cómo nos damos cuenta cuándo usamos uno y cuándo otro? Nosotros vamos a usar prefijos: 0b para el sistema binario; 0x, o $ para el hexadecimal; y, por último, el número decimal lo pondremos tal cual, sin ningún tipo de prefijo.
Por ejemplo: 0b1101 es un número binario, 0x7654 y $7654 son el mismo número hexadecimal y 64 es un número decimal.

Como ya explicamos, el sistema decimal tiene base 10 y, por lo tanto, también 10 dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9. Es el más usado en nuestra vida cotidiana.

El sistema binario tiene base 2 y, por lo tanto, emplea 2 dígitos: 0 y 1. Cada dígito binario corresponde con un bit (la mínima unidad informática). Por eso decimos que cada bit puede tener 2 valores: 0 o 1. La comparación que se hace usualmente es con un foquito de luz o lamparita: cada bit es una lámpara y puede estar apagada (cuando su valor es 0) o prendida (cuando su valor es 1). Por esa relación es usado para la informática.

El sistema hexadecimal tiene base 16 y emplea 16 dígitos distintos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F. La conversión que hacemos, para entenderla, es que A equivale a 10, B a 11 y así hasta F = 15; en sistema decimal. Lo usaremos muchísimo para el RH, pues nos permite expresar números mucho mayores en menos dígitos.



TAREA​

  1. Reconocer en qué sistema están los siguientes números:
    • 0b1110100
    • 0x827AAB
    • 191272
    • $732AFF
    • 0b110000
    • 0
  2. Pasar los números anteriores a los otros dos sistemas, pueden usar la calculadora de Windows.



ANEXO 1: HEX A DEC Y DEC A HEX​

Viendo el gran problema que muchos se hicieron para pasar un número de un sistema a otro, voy a explicar tanto cómo hacerlo "a mano" como con calculadora.

Para pasar un número de hexadecimal a decimal usaremos la "forma polinómica" que expliqué en el temario anterior, es decir, expresamos el número como una suma donde los términos sean el dígito multiplicado por una potencia de la base (16).

Ejemplos:
  • $18BF a DEC = 1*16^3 + 8*16^2 + B*16^1 + F*16^0 = 1*4096 + 8*256 + 11*16 + 15 = 6335
  • $FF = F*16^1 + F*16^0 = 15*16 + 15*1 = 240 + 15 = 255

Para pasar de un número decimal a uno hexadecimal, haremos un proceso de división. Dividiremos el número en 16 hasta que el cociente sea 0 e iremos anotando los restos:

1187 = 0x?

1187/16 = 74 (resto 3)
74/16 = 4 (resto 10, A en hex)
4/16 = 0 (resto 4)

Ahora juntamos los restos (siempre convirtiendo los números entre 10 y 15 a sus valores hexadecimales) desde atrás hacia adelante:

1187 = 0x4A3


ANEXO 2: DEC A BIN Y BIN A DEC​

Ahora lo mismo que antes, para pasar de binario a decimal usamos la forma polinómica:
0b1100100101 = ?(dec)

0b1100100101 = 1*2^9 + 1*2^8 + 0*2^7 + 0*2^6 + 1*2^5 + 0*2^4 + 0*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 512 + 256 + 0 + 0 + 32 + 0 + 0 + 4 + 0 + 1 = 805

Y similarmente a lo que hicimos antes, dividiremos para pasar de decimal a binario:

17235 = 0b?

17235/2 = 8617 (resto 1)
8617/2 = 4308 (resto 1)
4308/2 = 2154 (resto 0)
2154/2 = 1077 (resto 0)
1077/2 = 538 (resto 1)
538/2 = 269 (resto 0)
269/2 = 134 (resto 1)
134/2 = 67 (resto 0)
67/2 = 33 (resto 1)
33/2 = 16 (resto 1)
16/2 = 8 (resto 0)
8/2 = 4 (resto 0)
4/2 = 2 (resto 0)
2/2 = 1 (resto 0)
1/2 = 0 (resto 1)

Entonces:
17235 = 0b100001101010011



ANEXO 3: USANDO LA CALCULADORA​

Abrimos la calculadora de Windows y nos vamos a "Ver" y seleccionamos "Programador":



Allí tendremos a la izquierda una casilla para cada sistema (Hexadecimal, decimal, octal, binario).



Primero seleccionamos el sistema en el que está nuestro número y lo ingresamos, como ejemplo pasaré el 0x12A2FC a binario:



Luego seleccionamos el nuevo sistema y listo, el número se convertirá:




Aprobados

Desaprobados

Falta entrega

Falta entrega (con aviso)
 
Última edición:

AmuSakura

Baneado
Hola!
Muchas gracias por la segunda clase, y explicar a detalle cada cosa.
Y también por la primer tarea jejejee, ¿Hasta cuando se puede entregar?

Gracias. :D
 

NewHacker12

I am beautiful( ͡° ͜ʖ ͡°)
Hola bro.
Estuvo genial la segunda clase y que bien esta explicado todo.

PD: Tarea ? me voy de esta cosa (ok no ;v), genial nuestra primera tarea

PD2: Cuando se entrega ?
 

AlejBlue

Amante de la 4° y 5° Gen.
Pensé que las tareas iban a ser más sencillas. :'v

Pues nada, a re-leer el post de nuevo.
 

Inferno

Miembro insignia
Miembro insignia
Sin duda es una muy buena introducción al mundo de los sistemas numéricos, espero impaciente la siguiente clase :)
 

Laquin

Usuario mítico
muchas gracias por la clase, entendi todo, y eso qe no preste atencion!!!!


por cierto, cuanto tiempo tenemos para acer las tareas¿
SALUDOS ESPERO Y TENGA BIEN MIS TAREAS :D
 
Última edición:

Skyflyer

Creador de Pokémon Zenit
Buena clase pero no tenía ni idea de que íbamos a tratar este tipo de conversiones (ya que apenas la uso al trabajar con el hack, como mucho con la calculadora paso de hexa a decimal y viceversa) xD Parece que haya regresado a primero de informática jaja aunque allí desde luego era más chungo (números con coma flotante y demás, los entendidos lo sabrán).

Pregunta que quizás se haya dicho y parezca muy retarded pero es que no lo encuentro, ¿dónde mandamos la tarea? ¿A ti por privado? Porque como se publique aquí lo hace uno y todos los demás copiando xD Algo me suena de por privado pero como digo no recuerdo dónde lo pusisteis. Gracias ^^
 

Hkiller

Profesional de WaH
Tarea enviada, yo soy nuevo en todos los aspectos y he de decir que me ha parecido más que interesante la clase, muchas gracias. Cada día con más ganas de aprender y aprender
 

Yue Toramaru

Yue Ideaslocas xD
Las formas polinomicas no me han quedado muy claras... ^^U siempre he sido nulo en matematicas, por lo demas, me gusta la clase *pulgar arriba*
 

CompuMax

Discord: CompuMax#0425
Miembro insignia
Excelente la segunda clase
Menos mal leí q se entregaban en privado Sino salgo de atorado
Jejeje

:)

Más tarde la envío
 

Fran Agustín

Si el sol besa tus ojos, ni cuenta te das.
Miembro insignia

[caja="background: #bbb; border: 3px dashed #333; box-shadow: 0px 0px 5px 2px #333; font-family: Rockwell Extra Bold; color: #B22; font-weight: bolder; font-size: 30px; border-radius: 10px 0px 20px 0px; text-align: center;"]WAH'S MEORH | UNIDAD 2: SISTEMAS NUMÉRICOS [/caja]
[caja="background: #bbbbbbd0; border: 1px solid #222; box-shadow: 0px 0px 5px 2px #000, inset 0px 50px #7e7e7e; font-family: Arial Black; font-weight: bolder; font-size: 30px; color: #fff; border-radius: 5px; line-height: 35px;width: 90%;"]
ANEXO 1: HEX A DEC Y DEC A HEX​

Viendo el gran problema que muchos se hicieron para pasar un número de un sistema a otro, voy a explicar tanto cómo hacerlo "a mano" como con calculadora.

Para pasar un número de hexadecimal a decimal usaremos la "forma polinómica" que expliqué en el temario anterior, es decir, expresamos el número como una suma donde los términos sean el dígito multiplicado por una potencia de la base (16).

Ejemplos:
  • $18BF a DEC = 1*16^3 + 8*16^2 + B*16^1 + F*16^0 = 1*4096 + 8*256 + 11*16 + 15 = 6335
  • $FF = F*16^1 + F*16^0 = 15*16 + 15*1 = 240 + 15 = 255

Para pasar de un número decimal a uno hexadecimal, haremos un proceso de división. Dividiremos el número en 16 hasta que el cociente sea 0 e iremos anotando los restos:

1187 = 0x?

1187/16 = 74 (resto 3)
74/16 = 4 (resto 10, A en hex)
4/16 = 0 (resto 4)

Ahora juntamos los restos (siempre convirtiendo los números entre 10 y 15 a sus valores hexadecimales) desde atrás hacia adelante:

1187 = 0x4A3

[/caja]
[caja="background: #bbbbbbd0; border: 1px solid #222; box-shadow: 0px 0px 5px 2px #000, inset 0px 50px #7e7e7e; font-family: Arial Black; font-weight: bolder; font-size: 25px; color: #fff; border-radius: 5px; line-height: 35px;width: 90%;"]
ANEXO 2: DEC A BIN Y BIN A DEC​

Ahora lo mismo que antes, para pasar de binario a decimal usamos la forma polinómica:
0b1100100101 = ?(dec)

0b1100100101 = 1*2^9 + 1*2^8 + 0*2^7 + 0*2^6 + 1*2^5 + 0*2^4 + 0*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 512 + 256 + 0 + 0 + 32 + 0 + 0 + 4 + 0 + 1 = 805

Y similarmente a lo que hicimos antes, dividiremos para pasar de decimal a binario:

17235 = 0b?

17235/2 = 8617 (resto 1)
8617/2 = 4308 (resto 1)
4308/2 = 2154 (resto 0)
2154/2 = 1077 (resto 0)
1077/2 = 538 (resto 1)
538/2 = 269 (resto 0)
269/2 = 134 (resto 1)
134/2 = 67 (resto 0)
67/2 = 33 (resto 1)
33/2 = 16 (resto 1)
16/2 = 8 (resto 0)
8/2 = 4 (resto 0)
4/2 = 2 (resto 0)
2/2 = 1 (resto 0)
1/2 = 0 (resto 1)

Entonces:
17235 = 0b100001101010011

[/caja]

[caja="background: #bbbbbbd0; border: 1px solid #222; box-shadow: 0px 0px 5px 2px #000, inset 0px 50px #7e7e7e; font-family: Arial Black; font-weight: bolder; font-size: 25px; color: #fff; border-radius: 5px; line-height: 35px;width: 90%;"]
ANEXO 3: USANDO LA CALCULADORA​

Abrimos la calculadora de Windows y nos vamos a "Ver" y seleccionamos "Programador":



Allí tendremos a la izquierda una casilla para cada sistema (Hexadecimal, decimal, octal, binario).



Primero seleccionamos el sistema en el que está nuestro número y lo ingresamos, como ejemplo pasaré el 0x12A2FC a binario:



Luego seleccionamos el nuevo sistema y listo, el número se convertirá:



[/caja]
 

AmuSakura

Baneado
Muchas Gracias por la explicación de nuevo.
Yo sé que también tuve problemas, asi que esta explicación de nuevo me viene bien, y también no sabía lo de la calculadora. (Sinceridad ante todo XD)

Nuevamente gracias por todo. :D
 

Laquin

Usuario mítico
Bueno, en este post no me haré el nuv porque me gustaría explicar otro método para pasar de binario a decimal, sin tener que hacer tantas divisiones. Vamos a usar el número 29 por ejemplo.

Lo primero que debemos hacer es mirar en la tabla de potencias del 2(1, 2, 4, 8, 16, 32, 64...) el número más cercano a 29 y que sea menor que 29. El más cercano es 32, pero como es mayor que 29 cogeremos el 16.

Así que apuntaremos un 1 y restaremos 16 a 29. 29 - 16 = 13.
Ahora miraremos en la tabla de potencias el número anterior a 16; 8. ¿13 es mayor que 8? Sí; entonces, apuntaremos un 1 y restaremos 8 a 13. 13 - 8 = 5.
El número anterior a 8 es 4. ¿5 es mayor que 4? Sí, pues apuntamos otro 1. 5 - 4 = 1.
El anterior número es 2. ¿1 es mayor que 2? No, entonces apuntamos un 0 y no restamos nada.
Y el anterior es el 1. ¿1 es mayor o igual a 1? Sí, entonces apuntamos un 1.

Entonces, 29 = 0b11101.

Y para que veáis que es da lo mismo, lo haremos también con el mismo número; 17235. Esta vez más rápido.

El número más cercano y menor a 17 235 es 16 384.
Apuntamos un 1 y restamos. Nos da 851.
El número anterior es 8192. 851 es menor, así que apuntamos un cero y NO restaremos.
El número anterior es 4096. 851 es menor, así que apuntamos otro cero.
El número anterior es 2048. 851 es menor, así que apuntamos otro cero.
El número anterior es 1024. 851 es menor, así que apuntamos otro cero.
El número anterior es 512. Por fin, 851 es mayor que 512, así que apuntaremos un uno y restaremos. Nos da 339.
El número anterior es 256. 339 es mayor, así que apuntaremos un uno y restaremos. Nos da 83.
El número anterior es 128. 83 es menor, así que apuntaremos un cero y no restaremos.
El número anterior es 64. 83 es mayor, así que apuntaremos un uno y restaremos. Nos da 19.
El número anterior es 32. 19 es menor, así que apuntaremos un cero y no restaremos.
El número anterior es 16. 19 es mayor, así que apuntaremos un uno y restaremos. Nos da 3.
El número anterior es 8. 3 es menor, así que apuntaremos un cero y no restaremos.
El número anterior es 4. 3 es menor, así que apuntaremos otro cero.
El número anterior es 2. 3 es mayor, así que apuntaremos un uno y restaremos. Nos da 1.
El número anterior es 1. 1 es igual a 1, así que apuntaremos un uno.

Con esto, tenemos que 17235 = 0b100001101010011.

Por si no os habéis dado cuenta, los impares siempre acaban en 1 y los pares en 0.

Espero que os haya sido útil, o al menos que hayáis aprendido algo.

¡Saludos! ^^

PD: Muy buen tutorial, @Franco Kuchiki, por cierto.
 

Inferno

Miembro insignia
Miembro insignia
No es por nada, pero ese método lo veo muchisimo más lioso que hacer unas simples potencias y divisiones, es más, si das informática/TIC, es el método que se usa siempre, tengo que decir tambien que no e comprobado tus resultados, pero en mi opinión es bastante más facil de la otra forma, es cosa de acostumbrarte, no hace falta un master en matemáticas para hacerlo xD
 

Laquin

Usuario mítico
No es por nada, pero ese método lo veo muchisimo más lioso que hacer unas simples potencias y divisiones, es más, si das informática/TIC, es el método que se usa siempre, tengo que decir tambien que no e comprobado tus resultados, pero en mi opinión es bastante más facil de la otra forma, es cosa de acostumbrarte, no hace falta un master en matemáticas para hacerlo xD
Ya, pero a gustos colores. Supongo que hay alguien que prefiera el segundo método y, aunque no fuera así, nunca está de más aprender distintas formas de hacer las cosas.

¡Saludos!
 
Estado
Cerrado para nuevas respuestas.
Arriba