Gracias Hermes por la complementacion. Estoy evitando usar segun que cosas (como bit de mayor o menor peso) pues para un novato no es que venga grande, sino que pueden dejarlo por no entender (me ha pasado con alumnos).
El truco mas facil para saber que ocupa un numero es hacer el complemento a 2
![más risas [+risas]](/images/smilies/nuevos/risa_ani3.gif)
(cambiar ceros por unos y unos por ceros y sumar 1 al bit de menor peso).
Para no marear la perdiz en las variables, en char no mencione que puede ser unsigned, ni nombre los booleanos porque los veremos como flags en los struct consiguiendo que ocupen realmente solo 1 bit y no 8.
Y ya que estamos complementandolo:
Las operaciones a nivel de bits cuestan menos recursos que las otras. Asi que siempre que sea posible las utilizaremos. En una consola los recursos son muy limitados asi que no es bueno empezar a recargar cuando no hace falta.
Con los operadores se pueden crear soluciones complejas:
a = b == c (a vale b y se comprueba si b y c son iguales)
Tambien habra casos especiales en que el comportamiento original de un operador no nos valga, por ejemplo en las sumas de grados minutos y segundos. Entonces nosotros podremos modificar el comportamiento de los operadores para que hagan lo que deseamos, esto se llama sobrecarga de operadores.
Matematicas:
Cualquier base numerica se basa en esta regla:
Lo dividimos en unidades (100 seria 1, 0 y 0) y empezando desde la derecha y contando la posicion del primer digito como 0:
digito*base^posicion+digito*base^poisicion....
Unos ejemplos
Binario
110
1*2^2+1*2^1+0*2^0=6 en decimal
octal
110
1*8^2+1*8^1+0*8^0=72 en decimal
decimal
110
1*10^2+1*10^1+0*10^0=110 en decimal
Hexadecimal
110
1*16^2+1*16^1+0*16^0=272 en decimal
Me siento orgulloso de tenerte aqui complementando este tutorial pues si bien yo lo oriente hacia novatos tu lo estas complementando hacia todo el espectro.
[Offtopic]
Me caguen en el puñetero editor avanzado, esta haciendo lo que le sale de los huevos con el formato. Y una pregunta: ¿puedo meter etiquetas para crear hipervinculos? Si es asi me lo curro todo con vinculos hacia las diferentes partes del tutorial e incluso indices
[/Offtopic]
Saulotmalo, lo de los libros esta pillado por los pelos. Solo la experiencia te puede enseñar a depurar.
C++ es un lenguaje que en determinados momentos toma decisiones erroneas, y ahi un libro no te puede ayudar, solo la experiencia frente a este tipo de errores es lo que sirve.
Ahora bien si a lo que te refieres es a que un tuto por internet no se puede comparar a un libro...tienes toda la razon del mundo, pero la interactividad que podemos conseguir aqui, en un libro es imposible.
Y esto lo hace un recurso muy jugoso para aquel que empieza y dice: bits con peso?? los hay anorexicos??[+risas]Que es el ambito?? Vale lo sabes explicar muy bonito pero, que leches es el ambito??clases??polimorfismo??
Y como todos los libros estan escritos de programadores para programadores, o si no es asi te tienes que comprar 7 y algunos de ellos en ingles, esto prentende erradicar ese problema. De todas formas hay unos de Ra-ma que son 4 creo que no estan del todo mal
Y una cosa mas os digo.Gran parte de lo escrito es tirando de memoria, asi que en algun momento la voy a meter hasta el fondo seguro asi que decidmelo y lo corrijo.
Saludos y gracias por participar