Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: mort en 5 Febrero 2015, 01:21 AM

Título: Ayuda con la interpretación de este problema:
Publicado por: mort en 5 Febrero 2015, 01:21 AM
Disculpen no entiendo este problema, me podrían ayudar a comprender lo que tengo que hacer:

Introduzca un numero entero que contenga solo unos y ceros (es decir un entero "binario") y que despliegue su equivalente decimal.[ pista: Utilice los operadores de división y residuo para separar los dígitos del numero "binario", uno por uno, de derecha a izquierda. Así como en el sistema de numeración decimal el dígito mas a de la derecha tiene un valor de posición de 1, y el siguiente dígito a la izquierda tiene un valor por posición de 10, después de 100, después de 1000, y así sucesivamente, en el sistema binario de numeración, el dígito que se encuentra a la derecha tiene un valor por posición de 1, el siguiente dígito a la izquierda tiene un valor por posición de 2, después de 4, de 8, y así sucesivamente. Así el numero 234 se puede interpretar como 4*1 +3*10 +2*100. El equivalente decimal del numero binario 1101 es 1*1 + 0*2 + 1*4 + 1*8 o 1 + 0 + 4 + 8 o 13].

Título: Re: Ayuda con la interpretación de este problema:
Publicado por: engel lex en 5 Febrero 2015, 01:39 AM
mete tu falso binario en una variable tipo int...

la cosa es que según sabemos puedes hacer lo siguiente
Código (cpp) [Seleccionar]
int a = 1234;
a = a/10; //<- aquí "a" ahora vale 123
a = a/10; //<- aquí "a" ahora vale 12
a = a/10; //<- aquí "a" ahora vale 1
a = a/10; //<- aquí "a" ahora vale 0


tambien sabemos que
Código (cpp) [Seleccionar]
int a = 1234;
int b = 0;
b = a - (a/10) * 10; //<- "b" vale la ultima cifra de "a"

b vale 4 en ese ejemplo porque

1234/10 = 123
123 * 10 = 1230
1234-1230 = 4

y esto se repìte tanto como necesites

espero que con eso puedas pensar por donde continuar :P