jueves, 3 de noviembre de 2011

RESUMEN DE INTRODUCCIÓN A LA ORIENTACIÓN DE OBJETOS

La orientacion de objetos es una técnica de modelado de sistemas computacionales o no computacionales, mediante esta técnica se obtienen representaciones de problemas, esta representación es cercana a como ocurre en el mundo real.

los objetos representan una entidad ya sea física, conceptual o un software, estos objetos son cosas que tienen información.
Ejemplo entidad física: un transbordador
Ejemplo entidad conceptual: una orden de compra
Ejemplo de entidad software: un archivo

Un objeto tiene también un estado que son las posible condiciones en las que el objeto puede existir; tiene comportamiento que define como actua y reacciona un objeto, como reacciona a solicitudes de otros objetos y tiene una identidad que es única en cada objeto, incluso cuando se encuentra en el mismo estado que otro objeto.

CLASES
Es un grupo de objetos que comparten propiedades comunes (atributos), comportamiento común (operaciones) y asociaciones con otros objetos.
la diferencia que existe entre una clase y un objeto es que la clase define la estructura y comportamiento de cada objeto de la clase.

Hay que saber aplicar los lineamientos para encontrar las clases y asi poder asignarles  responsabilidades de la forma correcta, de esto depende el éxito, reusabilidad, claridad y mantenibilidad de un software.

Para hacer una buena depuracion de elementos y asi poder encontrar mas clases se debe leer y releer el problema y los documentos que hacen parte de este y cada vez que se lea hay que seguir una serie de pasos para que el desarrollo del software sea corto y efectivo.

PRINCIPALES PROPIEDADES DE LOS OBJETOS

Abstracción:
Representa características esenciales y se centra en una vista externa del objeto enfocándose en su comportamiento.

Encapsulamiento:
Toda la información de un objeto está dentro del mismo y solo se puede manipular si se le ordena al objeto.

Modularidad:
Es subdividir aplicaciones en partes más pequeñas (módulos), cada una de estas aplicaciones debe ser los más independiente posible de la aplicación en sí y de las restantes partes (bajo acoplamiento).
La dependencia a veces se conoce como acoplamiento, un sistemas con muchas dependencias tiene alto acoplamiento, los buenos sistemas tienen bajo acoplamiento porque en este caso un cambio en una parte del sistema es menos probable que hayan cambios a través del sistema.

VENTAJAS DE UTILIZAR UNA METODOLOGÍA ORIENTADA A OBJETOS

* Son modelos cercanos al mundo real, por lo tanto el diseño es más fácil y rápido.
* Los programas y modelos son mucho mas fáciles de manejar y entender.
* Se pueden reutilizar por lo que mejora la productividad.
* Cuando se cambian requerimientos estos cambios no son masivos, ya que los objetos son unidades autocontenidas.
* Las aplicaciones son más sencillas para los usuarios.
* Se facilita la creación de nuevos tipos de objetos a partir de los existentes.

INTRODUCCIÓN DE LA ORIENTACIÓN DE OBJETOS

Introducción a la Orientación a objetos


La orientación a objetos es una técnica de modelado de sistemas, que pueden ser o no computacionales.
Mediante la orientación a objetos se obtiene una representación del problema en cuestión, representación cercana a como ocurre en el mundo real. Es decir, estamos rodeados de objetos, alumno, profesor, escuela, estos objetos a su vez interactúan entre ellos para obtener servicios unos de otros. En la orientación a objetos se tienen también objetos similares a los de la realidad que también reciben y solicitan servicios unos de otros. Los objetos que se incluyen en el modelo dependen del problema que se está modelando, de su alcance, es decir, del “dominio del problema”.
Doug Rosenberg define el dominio del problema como “el área que abarcan las cosas y conceptos del mundo real relacionados con el problema que el sistema que se está diseñando resolverá.” [Rosenberg, 1999]
En teoría, las principales ventajas de los modelos orientados a objetos son:
· “El entendimiento del sistema es más fácil dado que la diferencia semántica entre el sistema y la realidad es reducida.”
· “Las modificaciones al modelo tienden a ser locales ya que frecuentemente afectan a una sola entidad, que está representada por un objeto.” [Jacobson, 1992]

Objetos

De manera informal, un objeto representa una entidad ya sea física, conceptual o software. Los objetos son cosas que tienen información, por ejemplo un auto en particular tiene placa, modelo, marca, tiene comportamiento, por ejemplo, avanza, retrocede. Los autos son similares entre sí y pueden agruparse, pertenecen a  la clase Autos.

Entidad física:Trasbordador
      




 Entidad conceptual: Orden de compra
 

 

 Entidad de software: archivo
 




Un objeto puede representar algo concreto del dominio del problema como una computadora, un profesor o un trasbordador espacial. También puede representar un concepto como un proceso químico, una orden de compra, la historia crediticia, o la tasa de interés.
En los sistemas orientados a objetos, los objetos también pueden representar estructuras de software tales como listas ligadas, árboles binarios o archivos. Estos objetos no existen en el mundo real, es decir, no pertenecen al dominio del problema. Pero son creados para facilitar la implementación.
Formalmente, “un objeto es un concepto que representa una entidad individual, identificable, ya sea real o abstracta, con un rol bien definido en el dominio del problema” [Smith and Jockey referenciados por Booch 91], “un objeto tiene límites definidos y tiene: estado, comportamiento e identidad”
El estado de un objeto es una de las posibles condiciones en las que un objeto puede existir, normalmente cambia en el tiempo, es implementado por un conjunto de propiedades (atributos),  los valores de éstos, y las relaciones que el objeto puede tener con otros objetos.   Por ejemplo un vuelo puede tener los estados: vacío, abordando o en vuelo.
El comportamiento de un objeto define como actúa y reacciona un objeto, define cómo reacciona a solicitudes de otros objetos. Es modelado por el conjunto de mensajes a los que puede responder (operaciones que puede desempeñar). Por ejemplo en una simulación de un juego de béisbol hay un lanzador y una pelota. El lanzador no “lanza” la pelota, el comportamiento lanzar del lanzador le pide a la pelota que se mueva. La pelota sabe cómo moverse (con un poco de ayuda como la velocidad). Movimiento es una propiedad de la bola no del lanzador.
Cada objeto tiene una identidad única, incluso cuando se encuentra en el mismo estado que otro objeto. [Object- Oriented Modeling and Design, James Rumbaugh, et al., Prentice Hall, 1991, p 22]                                                

Profra. Ho enseña física        





Profra. Ho enseña física             





Profr. Ho enseña física


 

 

Clases

Según Booch (1994), “una clase es un conjunto de objetos que comparten una estructura y un comportamiento común. Un objeto es una instancia de una clase”.
Jacobson describe a una clase como “una definición, una plantilla o molde para habilitar la creación de nuevos objetos y”…” describe la estructura interna de estos objetos. Objetos de la misma clase tienen la misma definición tanto para sus operaciones como para su estructura de información “.
Entonces, una clase es una descripción de un grupo de objetos que comparten propiedades comunes (atributos), comportamiento común (operaciones) y asociaciones con otros objetos.
Por ejemplo, mi auto estacionado frente al edificio es una instancia de la clase auto. La descripción genérica de “Auto” representa la clase de la cual se crean las instancias. El auto tiene una estructura: placa, número de motor, marca, modelo; tiene un comportamiento: avanzar, retroceder, estacionarse. Tiene asociaciones con otros objetos como el Dueño.
Otro ejemplo, la computadora en la cual esté usted trabajando es una instancia de la clase que describe a todas las computadoras personales, que podría llamarse “Computadora Personal”, tiene una estructura de información que incluye su marca, velocidad, espacio en disco, memoria, etc. Tiene comportamientos como encenderse, permanecer en espera, apagarse, bloquearse, aumentar la memoria, segmentar el disco duro, etc. Tiene asociaciones de agregación con otros objetos como el ratón o la impresora.

Diferencia entre objeto y clase

Una clase es una definición abstracta de un objeto. La clase define la estructura y el comportamiento de cada objeto de la clase. Sirve como una plantilla para crear objetos. Los objetos pueden agruparse en clases.
Por ejemplo, en la siguiente imagen tenemos 4 objetos. ¿Cuántas clases puede distinguir?




      


Dependiendo del problema del dominio se eligen las clases que convienen. Todas las siguientes son posibles clases para los objetos anteriores: Animales, Animales Salvajes, Animales Domésticos, Animales de Granja, Mamíferos, Felinos, Aparatos Electrónicos, Equipo de Cómputo, Aparatos Domésticos, etc.
Lineamientos para encontrar clases
Identificar adecuadamente las clases de un sistema y asignarles las responsabilidades de forma correcta es lo más importante de un proyecto de software y de él dependerá su éxito, su reusabilidad, claridad y mantenibilidad.
Las clases se encuentran en los documentos del proyecto, requerimientos, casos de uso, entrevistas con el cliente, experiencia en proyectos similares, etc.
De estas fuentes se obtienen los sustantivos relevantes. Después se van eliminando elementos de la lista siguiendo las siguientes reglas:
Eliminar duplicados
Eliminar sinónimos
Eliminar irrelevantes, ya sea fuera del contexto o sin significado para la aplicación en cuestión.
Eliminar términos vagos
Eliminar los que representan acciones (operaciones)
Eliminar los que representan características (atributos)
Eliminar nombres propios
Eliminar objetos (instancias de las clases)
Eliminar actores o entidades externas
Los términos elegidos deben sustantivos o frases sustantivas que sean pronunciables en singular.
Es importante mencionar que este es un proceso iterativo y que la primera lista no será la definitiva, debe regresarse a analizar el enunciado del problema y los documentos que se tengan a fin de buscar nuevas clases y repetir el ciclo de selección.
Por otro lado, no se debe ser exhaustivo ya que NUNCA se tendrá la lista perfecta y continuar más de lo debido en esta actividad lleva a lo que se conoce como “análisis parálisis”, unas dos horas al máximo debe ser suficiente para tener una buena  lista que en subsecuentes fases irá mejorando.
En UML  las clases se representan en alguna de las dos siguientes notaciones:
Clase
atributos
operaciones
   
Clase


Principales propiedades de los objetos
Según Booch (1994), sin las siguientes propiedades el modelo no es orientado a objetos.
Abstracción
La abstracción es la propiedad que permite representar las características esenciales de un objeto, aquellas relevantes sólo en el dominio del problema excluyendo las no esenciales.
Una abstracción se centra en la vista externa de un objeto, enfocándose en su comportamiento en vez de en su implementación. 
Encapsulamiento
“Toda la información de un objeto está almacenada dentro del mismo objeto y sólo puede ser manipulada cuando al objeto se le ordena que lleve a cabo alguna operación. El comportamiento y la información están encapsulados en el objeto. La única forma de realizar operaciones en el objeto es realizar operaciones en él. Los objetos, entonces soportan el concepto de ocultamiento de la información, esto es, ocultan su estructura interna de su alrededor. Cada una de las operaciones del objeto tiene como propósito algún comportamiento del mismo. No se necesita saber cómo está implementada alguna operación o cómo se representa la información, sólo necesitamos conocer las operaciones que tiene como interfaz para comunicarnos con él.”  [Jacobson, 1992]
Modularidad [Reyes Paredes, 2006]
Es la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes (bajo acoplamiento).
El Módulo A depende del Módulo B si cualquier cambio en el Módulo B implica que el Módulo A también tenga que ser modificado. A veces se dice que el Módulo A es un cliente del Módulo B, o que el Módulo B actúa como servidor del Módulo A.
La dependencia a veces se conoce como acoplamiento. Un sistema con muchas dependencias tiene alto acoplamiento. Los buenos sistemas tienen bajo acoplamiento, porque en ese caso los cambios en una parte del sistema son menos probables de propagarse a través del sistema.
Ejemplos de módulos son clases, operaciones de las clases o paquetes de clases.
Generalización y Herencia
Técnica para permitir a las clases usar los métodos y los datos de una clase padre. Puede tener muchos niveles. A la clase padre se le conoce también como superclase o clase base, a la clase hijo se le llama también clase derivada o subclase.
La clase derivada tiene exactamente los mismos atributos y operaciones que la clase base además de mantener las mismas asociaciones con otras clases que tiene la superclase. Se puede decir que las subclases son especializaciones de su(s) padre(s).
Facilita el control de cambios y la reutilización.
Polimorfismo
Según Booch (1994), el polimorfismo se define como “Un concepto en la teoría de tipos, acorde con el cual un nombre (como la declaración de una variable) puede denotar objetos de diferentes clases que están relacionadas por una superclase común; entonces, cualquier objeto denotado por este nombre es capaz de responder a un conjunto común de operaciones en diferentes formas”.
Esto en otras palabras indica que quien solicita un servicio o invoca una operación no necesita saber la clase a la que pertenece la instancia a quien se lo solicita. Un ejemplo de implementación de polimorfismo ocurre si tenemos una clase padre llamada Figura a la que le declaramos una operación llamada calculaArea, Figura tiene dos subclases, Circulo y Rectángulo, ambas heredan la operación calculaArea, obviamente su implementación es distinta. En alguna parte del código puede encontrarse la invocación  x.calculaArea( ), donde no importa de que tipo es x, el compilador no lo sabe, no es sino hasta el momento de ejecución que se hará el ligado dinámico con la implementación correspondiente y se ejecutará el código que corresponda al tipo.
Otros ejemplos de polimorfismo ocurren cuando un método puede ofrecer diferentes implementaciones en función de los argumentos que recibe, recibir diferentes números de parámetros para realizar una misma operación, y realizar diferentes acciones dependiendo del nivel de abstracción en que sea llamado.
Persistencia
Es la habilidad de un objeto de existir más allá de la terminación del programa que lo creó. Permite el almacenamiento de datos en términos de objetos, por ejemplo los archivos son objetos.
Ventajas de la utilizar una metodología orientada a objetos
Los modelos más cercanos al mundo real, por lo que el diseño es más fácil y más rápido.
Los programas y modelos son más fáciles de entender y mantener, más adaptables a requerimientos cambiantes.
Facilitan reutilización aumentando la productividad
Cambios en los requerimientos no implican cambios masivos en el sistema en desarrollo ya que los objetos son unidades autocontenidas.
Las aplicaciones son más sencillas para los usuarios debido a que los datos innecesarios están ocultos.
Es más fácil crear nuevos tipos de objetos a partir de los ya existentes.
Aumentan la confiabilidad.
Son diseños robustos.

Conclusiones
Un sistema debe desarrollarse de forma que abarque la teoría de objetos.
Estos objetos se conocen como objetos del dominio
En conjunto, los objetos constituyen lo que se conoce como modelo del negocio o del dominio
Si el modelo se crea correctamente, el sistema es fácil de mantener.


Extraido de http://cmapspublic.ihmc.us/rid=1191518473328_321590650_9565/Programaci%C3%B3n%20orientada%20a%20objetos.cmap



 Extraido de http://cmaps.cmappers.net/rid=1HPBF2VGV-KD3HY-DTH/Mapa%20conceptual%20de%20POO.cmap


Extraido de http://users6.nofeehost.com/kaos07/examen1.html

“The most single important ability in object- oriented analysis and design is to skillfully assign responsibilities to software components”
“… a close second in terms of importance is finding suitable objects or abstractions”
* Craig Larman - autor of Applying UML & Patterns

Booch, Grady, 1994. Objected-Oriented Analysis And Design With Applications, 2nd Ed., Menlo Park, CA: Addison-Wesley.
Jacobson, Ivar. et al. 1992. Object Oriented Software Engineering: a Use Case Driven Approach. Addison Wesley Publishing Company.
Reyes Paredes, Arbis Percy. Conceptos y principios orientado a objetos. Consultado 18 de mayo de 2006. Tomado de: http://www.elguille.info/colabora/NET2005/Percynet_Conceptosyprincipiosorientadoaobjetos.htm

sábado, 17 de septiembre de 2011

PRINCIPIOS DE ALGORITMIA

1.) ¿Que es algoritmia?
Es un método que mediante un conjunto de  pasos precisos lógicos y finitos me efectuan algun proceso o cálculo y me solucionan un problema.

2.) Mencione las condiciones con las que debe cumplir la algoritmia.
     A.) debe ser finito es decir que debe tener un final
     B.) Definir con precision cada paso que voy a realizar (proceso)
     C.) Se deben definir al inicio los datos de entrada y de salida
     D.) Debe ser efectivo.

3.) Realice un algoritmo que cumpla con todos los pasos anteriores.

Inicio
     DV: numero
     ingrese un numero.............(Dato de entrada)
     lea el numero
     si el numero es mayor a cero..................................................................(Proceso....
         mensaje "el numero es positivo"............(Dato de salida
     sino
        mensaje "el numero es negativo" ............(Dato de salida)
     fin...........................................................................................................Proceso)
fin...............................(Finito)

4.) Cuales son los tipos de algoritmos y explíquelos.
     A.) Algoritmos computacionales:
           Son aquellos que se realizan para ser ejecutados en un computador y debe tener muy claro lo 
           que quiere el cliente.

     B.) Algoritmos no computacionales:
           Son aquellos que son ejecutados por el ser humano.

5.)  Cuales son las partes de un algoritmo y realice un ejemplo donde se vean claramente.
     A.) Entrada: Son los datos necesarios que requiere el proceso
     B.) Proceso: Pasos necesarios para obtener la solucion al problema.
     C.) Salida: Resultados arrojados por el proceso como solución.

     Ejemplo
     Realice un algoritmo que me diga si una persona es menor o mayor de edad, muestre la edad.

    Inicio
         DV:edad......................(Entrada)
         Imprima ("ingrese la edad")
         Lea (edad)
         si (edad>=18) entonces................................................(Proceso...
             Imprima ("La persona es mayor de edad")....(Salida)
         sino
             Imprima ("La pesona es menor de edad")......(Salida)
         finsi
         Imprima ("La edad de la persona es:",edad)......(Salida)............Proceso)
fin

6.) Defina cada una de las características con las que debe cumplir un algoritmo.
     A.) Presicion: Es indicar el orden de realización de cada paso dentro el proceso.
     B.) Definicion: Es la exactitud y consistencia de los pasos en el proceso, si se hace una
           prueba del algoritmo dos veces las dos veces debe mostrar el mismo resultado.
     C.) Finitud: Indica el numero razonable de pasos que conllevan a la finalizacion del proceso
           y produce un resultado en tiempo finito.

7.) Cuales son los elementos que nos sirven para la construcción de un algoritmo y de un ejemplo de
     cada uno de ellos.
     A.) Comandos: Son las acciones que debe interpretar y ejecutar el computador
           Ejemplo: Leer, Imprimir, Inicio...
    B.) Datos: Es un campo que puede convertirse en información.
          Ejemplo: Númericos (Reales o enteros)
                        Logicos
                        Carácter ( Char, string)
    C.) Variables y constantes: Son espacios en la memoria creados para contener valores.
          Variable: Es un dato que puede variar durante la realizacion del algoritmo
          Ejemplo: Suma=n1 + ne
          Constante: Es un dato que permanece sin cambios durante el proceso"
          Ejemplo: pi=3.14
    D.) Operadores:
          Aritméticos: Se utilizan para realizar operaciones aritmeticas: +(suma), -(resta),*(multiplicacion),
          /(divicion), ^(potenciacion), %(módulo)
          Relacionales: Sirven para comparar dos valores: <(menor que), >(mayor que), <=(menor que o igual
          a), >=(mayor que oigual a), ==( igual a), !=(diferente a)
          Lógicos: Sirven para combinar condiciones:
          OR        
Condición 1
Condición 2
resultado
V
F
V
F
V
V
V
V
V
F
F
F


AND

Condición 1
Condición 2
resultado
V
F
F
F
V
F
F
F
F
V
V
V
NOT
V=F
F=V











         


          








sábado, 20 de agosto de 2011

TALLER SISTEMAS BINARIOS

TALLER
MOSTRAR EL PROCESO QUE SE REALIZÓ PARA LLEGAR A LA RESPUESTA
1. Para pasar de binario a decimal.

a.)   11001                         Solucion:25

16     8        4       2        1

Resultado: 16+8+1=25

b.)   1011011011               Solucion: 731



 512    256    128     64     32      16       8       4         2        1

Resultado: 512+128+64+16+8+2+1=731

2. Para pasar de decimal a binario.

      a.) 869                              Solucion: 1101100101
            869÷2=434÷2=217÷2=108÷2=54÷2=27÷2=13÷2=6÷2=3÷2=1÷2=0
      1           0           1            0         0         1          1      0       1      1

Resultado: 1101100101

       b.) 8426                           Solución: 10000011101010   8426÷2=4213÷2=2106÷2=1053÷2=526÷2=263÷2=131÷2=65÷2=32÷2=16÷2=8÷2=4÷2=2÷2=1÷2=0
       0           1          0           1        0        1         1       1      0       0     0     0      0      1
           
Resultado: 10000011101010

3. Para pasar de binario a octal.

        a.) 111010101                Solucion: 725
             111     010      101
               7         2           5

        b.) 1101101                    Solucion: 155
             001     101      101
               1         5           5

4. Para pasar de octal a binario.

        a.) 2066                          Solucion: 010000110110
                 2         0        6         6
               010    000   110    110

         b.) 14276                       Solucion: 001100010111110
           1           4        2        7        6
          001      100     010    111     110

5. Para pasar de binario a hexadecimal.

       a.) 110001000           Solucion: 188
          0001     1000      1000
             1          8           8

      b.) 100010110            Solucion: 116
          0001     0001      0110
             1          1           6

6. Para pasar de hexadecimal a binario.

      a.) 86BF           Solucion: 1000011010111111
           8          6          B          F
       1000      0110      1011     1111

     b.) 2D5E           Solucion: 0010110101011110
           2          D          5          E
         0010     1101     0101     1110

7. Para pasar de octal a decimal.

    a.) 106               Solucion: 70
         1       0       6
       001    000    110        =001000110
    
    256    128      64     32      16      8        4        2         1
    Resultado: 64+4+2=70

    b.) 742                    Solucion: 482
          7        4        2     
        111     100    010 = 111100010
      
      256     128    64     32      16     8        4         2        1
    Resultado: 256+128+64+32+2=482


8. Para pasar de decimal a octal.

    a.) 236                    Solucion: 354
         236÷2=118÷2=59÷2=29÷2=14÷2=7÷2=3÷2=1÷2=0
              0          0        1        1         0       1      1      1 =
        11101100
       011      101      100
         3          5          4

     b.) 52746               Solucion: 147012
     52746÷2=26373÷2=13186÷2=6593÷2=3296÷2=1648÷2=824÷2=412÷2=206÷2=103÷2=51÷2=25
       0                    1               0              1              0             0           0           0           0            1         1 
25÷2=12÷2=6÷2=3÷2=1÷2=0
    1         0       0       1       1
1100111000001010
001   100   111   000   001   010
  1       4       7        0        1        2 
                             


Realizar la siguiente conversión y mostrar el proceso que tomaron para llegar a la respuesta.

DECIMAL
BINARIO
OCTAL
HEXADECIMAL
100
1100100
144
64
1000
1111101000
1750
3E8
10000
010011100010000
23420
2710
100000
00011000011010100000
303240
186A0


1.) 100= Decimal
     a.) Pasar a binario             100÷2=50÷2=25÷2=12÷2=6÷2=3÷2=1÷2=0
                                                        0         0          1         0       0       1      1
Resultado: 1100100

     b.) Pasar a octal                           001      100      100     
                                                               1          4          4        Resultado: 144

     c.) Pasar a hexadecimal              0110      0100
                                                                6            4                 Resultado: 64          

2.) 1111101000= Binario
     a.) Pasar a octal                           001      111      101      000
                                                               1          7          5           0        Resultado: 1750

     b.) Pasar a hexadecimal              0011    1110    1000
                                                                3           E           8                   Resultado: 3E8

     c.) Pasar a decimal              
                                               512    256    128     64     32     16      8         4        2        1
            Resultado: 512+256+128+64+32+8=1000

3.) 23420= Octal
     a.) Pasar a binario             2          3          4          2          0
                                               010       011      100      010      000   Resultado:010011100010000

     b.) Pasar a hexadecimal        0010        0111      0001    0000   
                                                          2               7            1          0          Resultado: 2710

     c.) Pasar a decimal
     16384               8192     4096    2058    1024      512     256   128    64     32     16     8     4      2       1 

Resultado: 8192+1024+512+256+16=10000                    

4.) 186A0= Hexadecimal
     a.) Pasar a binario
       1            8            6            A            0
    0001      1000       0110     1010       0000             Resultado: 00011000011010100000

     b.) Pasar a octal                000     011     000     011     010     100     000
                                                 0         3         0         3         2         4         0
            Resultado: 303240

     c.) Pasar a decimal
    524288        262144      131072      65536      32768      16384     8192      4096      2048 



     1024    512     256     128     64       32      16       8       4        2       1

            Resultado: 65536+32768+1024+512+128+32=100000