Estoy en un equipo en el curso de sistemas y se han luchando, en parte, con Complemento a dos. Quiero entender, pero todo lo que he leído no ha traido la foto juntos para mí. He leído el artículo de la wikipedia y varios otros artículos, incluyendo mi libro de texto.

Por lo tanto, yo quería empezar este wiki de la comunidad post para definir qué Complemento a Dos es, cómo usarlo y cómo puede afectar a los números durante las operaciones como de los yesos (de firmado a los sin firmar y viceversa), bit a bit de las operaciones y de los bits de las operaciones del turno.

Lo que estoy esperando es una definición clara y concisa que es fácil de entender por un programador.

OriginalEl autor |

17 Comentarios

  1. 544

    Complemento a dos es una forma inteligente de almacenar enteros por lo que es común los problemas de matemáticas son muy fáciles de aplicar.

    A entender, usted tiene que pensar de los números en binario.

    Básicamente dice,

    • de cero, hay que utilizar todos 0.
    • para enteros positivos, de empezar a contar, con un máximo de 2(número de bits – 1)-1.
    • para enteros negativos, hacen exactamente lo mismo, pero cambiar el rol de 0’s y 1’s (así que en lugar de comenzar con 0000, empezar con 1111 – que es el «complemento» de la parte).

    Vamos a intentarlo con un mini-byte de 4 bits (vamos a llamar a un mordisquear – 1/2 un byte).

    • 0000 – cero
    • 0001 – uno
    • 0010 – dos
    • 0011 – tres
    • 0100 a 0111 – de cuatro a siete

    Tan lejos como podemos ir en positivos. 23-1 = 7.

    Para los negativos:

    • 1111 – negativo
    • 1110 negativo de dos
    • 1101 negativo de tres
    • 1100 a 1000 negativo de la cuatro a la negativa de ocho

    Tenga en cuenta que usted obtiene un valor adicional para los negativos (1000 = -8), que no para los positivos. Esto es debido a que 0000 se utiliza para el cero. Esto se puede considerar como Número De Línea de los equipos.

    Distinguir entre números positivos y negativos

    Hacer esto, el primer bit se pone el papel de la «señal» de bits, ya que puede ser utilizado para distinguir entre positivo y negativo de los valores decimales. Si el bit más significativo es 1, luego del binario se puede decir que ser negativo, mientras que si el bit más significativo (el de la izquierda) es 0, se puede decir discernir el valor decimal es positivo.

    «Complementar» los números negativos sólo invierte el bit de signo, entonces la cuenta desde 0. Pero este enfoque tiene que lidiar con la interpretación de 1000 como «cero negativo», que es confuso. En general, usted sólo tiene que preocuparse de esto cuando se trabaja cerca del hardware.

    Probablemente la mejor parte de complemento a dos es la forma en que simplifica las matemáticas. Trate de añadir 2 (0010) y -2 (1110) y consigue 10000. Es el bit más significativo de desbordamiento, por lo que el resultado es realmente 0000. Casi como por arte de magia, 2 + -2 = 0.
    Otra ventaja además de una fácil adición y la sustracción es que 2s complemento sólo tiene un cero. Si se utiliza un simple bit de signo, afirman que la utilización de 0001 a representar a +1 y 1001 para representar -1, tendría dos ceros: 0000 («+0») y 1000 («-0»). Eso es un verdadero dolor en el trasero.
    Upvote, para que sea el punto y también para explicar por qué los valores negativos que tienen un mayor alcance que las positivas. Vengo en busca de la razón de la diferencia de rango.
    ¿No debería decir «para enteros negativos, hacer exactamente lo mismo, pero contar hacia abajo y cambiar el rol de 0’s y 1’s»
    Impresionante .Añadido extra partes de la conversión de bits de número entero negativo.

    OriginalEl autor

  2. 293

    Me pregunto si esto podría ser explicado mejor que el artículo de la Wikipedia.

    El problema básico que usted está tratando de resolver con complemento a dos de la representación es el problema de almacenar números enteros negativos.

    Considerar en primer lugar un entero sin signo almacenado en 4 bits. Usted puede tener las siguientes

    0000 = 0
    0001 = 1
    0010 = 2
    ...
    1111 = 15
    

    Estos son sin firmar porque no hay ninguna indicación de si son negativos o positivos.

    Magnitud con signo y el Exceso de Notación

    Para almacenar números negativos usted puede tratar de un número de cosas. En primer lugar, puede utilizar el signo de la magnitud de la notación que se asigna el primer bit como un bit de signo para representar a +/- y el resto de bits para representar la magnitud. Así que, usando 4 bits de nuevo y suponiendo que 1 significa – y 0 + entonces usted tiene

    0000 = +0
    0001 = +1
    0010 = +2
    ...
    1000 = -0
    1001 = -1
    1111 = -7
    

    Así, se ve que el problema no? Hemos positivos y negativos 0. El problema más grande es la suma y resta de números binarios. Los circuitos para sumar y restar utilizando magnitud con signo va a ser muy complejo.

    Lo que es

    0010
    1001 +
    ----
    

    ?

    Otro sistema es el exceso de notación. Puede almacenar los números negativos, hay que deshacerse de los dos ceros problema, pero la adición y la sustracción sigue siendo difícil.

    Y llega complemento a dos. Ahora usted puede almacenar números enteros positivos y negativos y realizar operaciones aritméticas con relativa facilidad. Hay un número de métodos para convertir un número en complemento a dos. Aquí tienes uno.

    Convertir de Decimal a Complemento a Dos

    1. Convertir el número a binario (ignorar el signo por ahora)
      por ejemplo, 5 es 0101 y -5 es 0101

    2. Si el número es un número positivo, entonces usted está listo.
      por ejemplo, 5 es 0101 en binario utilizando la notación complementaria de dos.

    3. Si el número es negativo entonces

      3.1 encontrar el complemento (invertir 0’s y 1’s)
      por ejemplo, -5 es 0101 por lo que encontrar el complemento es 1010

      3.2 Añadir 1 al complemento 1010 + 1 = 1011.
      Por lo tanto, -5 en complemento a dos es de 1011.

    Así, lo que si quería hacer 2 + (-3) en binario? 2 + (-3) es -1.
    Lo que habría que hacer si se utiliza el signo de la magnitud de la suma de estos números? 0010 + 1101 = ?

    Utilizando el complemento a dos de considerar lo fácil que sería.

     2  =  0010
     -3 =  1101 +
     -------------
     -1 =  1111
    

    La conversión de Complemento a Dos Decimales

    La conversión de 1111 a decimal:

    1. El número comienza con 1, por lo que es negativo, por lo que nos encontramos con el complemento de 1111, que es 0000.

    2. Añadir de 1 a 0000, y obtenemos 0001.

    3. Convertir 0001 a decimal, que es 1.

    4. Aplicar el signo = -1.

    Tada!

    Mejor respuesta en mi opinión.
    sí, esta es bastante sencilla y se explica el asunto muy buena
    No entiendo cómo la adición de uno cuando la conversión de las dos maneras, siempre lleva el mismo número. En mi mente usted podría revertir los pasos, o restar uno o algo.
    ¿Por qué añadir 1 al complemento?
    Esta respuesta debe ser utilizado en la Wikipedia.

    OriginalEl autor

  3. 109

    Como la mayoría de las explicaciones que he visto, los de arriba son claras acerca de cómo trabajar con complemento a 2, pero realmente no explicar lo que son matemáticamente. Voy a tratar de hacer que, para los números enteros, al menos, y voy a cubrir algunos antecedentes que probablemente familiarizado primero.

    Recordar cómo funciona para decimal:
      2345
    es una manera de escribir
      2 × 103 + 3 × 102 + 4 × 101 + 5 × 100.

    De la misma manera, binario es una forma de escribir los números con sólo 0 y 1 siguiendo la misma idea general, pero la sustitución de los 10s arriba con 2s. A continuación, en binario,
      1111
    es una manera de escribir
      1 × 23 + 1 × 22 + 1 × 21 + 1 × 20
    y si el trabajo, que resulta igual a 15 (base 10). Eso es porque es
      8+4+2+1 = 15.

    Esto es todo bien y bueno para los números positivos. Incluso funciona para los números negativos si usted está dispuesto a pegarse un signo menos delante de ellos, como lo hacen los humanos con números decimales. Que puede incluso realizarse en equipos, de alguna forma, pero no he visto un equipo desde principios de la década de 1970. Voy a dejar las razones para una discusión diferente.

    Para los equipos que resulta ser más eficaz utilizar un complementar de representación para los números negativos. Y aquí algo que a menudo es pasado por alto. Complementar las notaciones implica algún tipo de inversión de los dígitos del número, incluso el implícita ceros que venir antes de que una normal número positivo. Que extraño, porque la pregunta que surge es: todos ellos? Que podría ser un número infinito de dígitos que se deben considerar.

    Afortunadamente, los equipos no representan a los infinitos. Los números están limitados a una longitud determinada (o el ancho, si prefiere). Así que vamos a volver a positivo números binarios, pero con un tamaño en particular. Voy a usar de 8 dígitos («bits») para estos ejemplos. Así que nuestro número binario sería realmente
      00001111

      0 × 27 + 0 × 26 + 0 × 25 + 0 × 24 + 1 × 23 + 1 × 22 + 1 × 21 + 1 × 20

    Para formar el complemento a 2 negativo, lo primero que complementan todo el (binario) dígitos para formar
      11110000
    y agregar 1 para formar
      11110001
    pero ¿cómo hemos de entender que significa -15?

    La respuesta es que podemos cambiar el significado del bit de orden superior (la izquierda). Este bit será un 1 para todos los números negativos. El cambio será para cambiar el signo de su contribución al valor de la cantidad que aparece en. Así que ahora nuestro 11110001 se entiende que representan
      –1 × 27 + 1 × 26 + 1 × 25 + 1 × 24 + 0 × 23 + 0 × 22 + 0 × 21 + 1 × 20
    Aviso de que «-» delante de esa expresión? Esto significa que el bit de signo lleva el peso -27, que es -128 (base 10). Todas las demás posiciones mantener el mismo peso que tenían en números binarios sin signo.

    Trabajando para nuestra -15, es
      -128 + 64 + 32 + 16 + 1
    pruébalo en tu calculadora. es -15.

    De las tres formas principales que he visto los números negativos se representan en los equipos, complemento a 2 gana las manos abajo para una mayor comodidad en el uso general. Tiene una rareza, aunque. Ya que es binario, hay que tener un número de posibles combinaciones de bits. Cada número positivo puede ser emparejado con su negativa, pero sólo hay un cero. La negación de un cero se pone un cero. Así que hay más de una combinación, el número con 1 en el bit de signo y 0 en todas partes. El correspondiente número positivo no caben en el número de bits que se utiliza.

    Lo que es aún más extraño acerca de este número es que si tratas de forma positiva por complementando y uno, se obtiene el mismo número negativo de la espalda. Parece natural que cero haría esto, pero esto es inesperado y no en todo el comportamiento que estamos acostumbrados porque los ordenadores a un lado, pensamos generalmente de un suministro ilimitado de dígitos, no esta de longitud fija aritmética.

    Esto es como la punta de un iceberg de rarezas. Hay más en acecho debajo de la superficie, pero que es suficiente para esta discusión. Usted probablemente podría encontrar más si la investigación de «desbordamiento» de punto fijo de la aritmética. Si usted realmente desea conseguir en ello, también podría investigación «aritmética modular».

    Me gusta esta respuesta! Explica cómo tomar 2s complementar y añadir uno trabaja.
    Me gusta esta respuesta así. Especialmente donde se muestra cómo el número negativo es descubierto. Yo pensaba que el número entero estaba invertido, no sólo de la MSB y, a continuación, agrega los otros valores ponderados. Gracias, ya esta resuelto mi cerebro bloque
    Buen trabajo, mencionando el «bicho raro» número que no tiene un inverso. Pero, ¿qué podemos hacer acerca de esto? No acabamos de establecer el desbordamiento de la bandera si alguien intenta invertir?
    Mientras que otras respuestas se centran en el «cómo», esta respuesta nos lleva suavemente con el «por qué». Me ayudó a mí. Gracias!

    OriginalEl autor

  4. 18

    Complemento a 2 es muy útil para encontrar el valor de un binario, sin embargo, pensé que de una forma mucho más concisa la forma de solucionar un problema(nunca visto a nadie publicarlo):

    tomar un binario, por ejemplo: 1101 que es [suponiendo que el espacio «1» es el signo] igual a -3.

    utilizando el complemento a 2 haríamos esto…flip 1101 a 0010…añadir 0001 + 0010 ===> nos da 0011. 0011 en positivo binario = 3. por lo tanto 1101 = -3!

    Lo que me di cuenta:

    lugar de todo el mover de un tirón y la adición, usted puede hacer el método básico para resolver problemas de un positivo binario(digamos 0101) es (23 * 0) + (22 * 1) + (21 * 0) + (20 * 1) = 5.

    Hacer exactamente el mismo concepto con un negativo!(con un pequeño giro)

    tomar 1101, por ejemplo:

    para el primer número en lugar de la 23 * 1 = 8 , do -(23 * 1) = -8.

    luego continuar como de costumbre, haciendo -8 + (22 * 1) + (21 * 0) + (20 * 1) = -3

    La mejor manera, yo podría entender complemento a 2. Después de leer esto, yo podía entender todas las respuestas a la pregunta anterior.
    Este es el método que se menciona en el libro de los Sistemas Informáticos: Un punto de vista del programador.
    Esta es una manera mucho más rápida!
    No has leido la respuesta de ForDummies, ¿no?

    OriginalEl autor

  5. 14

    Imagine que usted tiene un número finito de bits/trits/dígitos/lo que sea. Definir 0 como todos los dígitos: 0, y contar hacia arriba de forma natural:

    00
    01
    02
    ..
    

    Finalmente se desborde.

    98
    99
    00
    

    Tenemos dos dígitos y pueden representar todos los números de 0 a 100. Todos los números son positivos! Supongamos que queremos representar números negativos?

    Lo que realmente tenemos es un ciclo. El número antes de las 2 es 1. El número antes de 1 es 0. El número 0 es… 99.

    Así que, para simplificar, digamos que cualquier número de más de 50 es negativo. «0» a «49» representan del 0 al 49. «99» es -1, «98» es -2, … «50» es de -50.

    Esta representación es diez del complemento. Los equipos suelen utilizar complemento a dos, que es el mismo, salvo el uso de bits en lugar de los dígitos.

    La cosa buena acerca de los diez del complemento es que además sólo funciona. Usted no necesita hacer nada especial para agregar números positivos y negativos!

    OriginalEl autor

  6. 5

    Dos complemento se encuentra mediante la adición de un 1’st complemento del número dado.
    Digamos que tenemos que encontrar dos complementar de 10101, a continuación, encontrar sus queridos complemento, que es, 01010 agregar 1 a este resultado, que es, 01010+1=01011, que es la respuesta final.

    OriginalEl autor

  7. 4

    Permite obtener la respuesta 10 – 12 en forma binaria, utilizando 8 bits:
    Lo que vamos a hacer es 10 + (-12)

    Que necesitamos para conseguir el elogio de parte de 12 a restar de 10.
    12 en binario es 00001100.
    10 en binario es 00001010.

    Para obtener el cumplido parte de 12 acabamos de invertir todos los bits, a continuación, añadir 1.
    12 en binario invertido es 11110011. Esta es también la Inversa de código (un complemento).
    Ahora tenemos que añadir, que es ahora 11110100.

    Así 11110100 es el elogio de 12! Fácil cuando usted piensa de esta manera.

    Ahora usted puede resolver la pregunta anterior de 10 – 12 en forma binaria.

    00001010
    11110100
    -----------------
    11111110  
    

    OriginalEl autor

  8. 3

    Mirando el complemento a dos de un sistema de matemática punto de vista, lo que realmente hace sentido. En los diez del complemento, la idea es esencialmente ‘aislar’ la diferencia.

    Ejemplo: 63 – 24 = x

    Añadimos el complemento de 24 que es en realidad (100 – 24). Así que en realidad, todo lo que estamos haciendo es añadir 100 en ambos lados de la ecuación.

    Ahora la ecuación es: 100 + 63 – 24 = x + 100, es por eso que nos quite el 100 (o 10 o 1000 o lo que sea).

    Debido a la incómoda situación de tener que restar un número a partir de una larga cadena de ceros, se utiliza una ‘disminución de radix complementar el sistema, en el sistema decimal, nueve del complemento.

    Cuando se nos presentan con un número restado de una gran cadena de nueves, sólo tenemos que revertir los números.

    Ejemplo: 99999 – 03275 = 96724

    Que es la razón, después de nueve complemento, añadimos 1. Como usted probablemente sabe de la infancia de matemáticas, 9 se convierte en 10 por ‘robar’ 1. Así que, básicamente, es sólo diez del complemento, que se lleva a 1 a partir de la diferencia.

    En Binario complemento a dos es equatable a diez del complemento, mientras que un complemento a nueve del complemento. La principal diferencia es que en lugar de tratar de aislar la diferencia con potencias de diez (adición de 10, 100, etc. en la ecuación) estamos tratando de aislar la diferencia con potencias de dos.

    Es por esta razón que nos invertir los bits. Justo como nuestro minuendo es una cadena de nueves en decimal, nuestro minuendo es una cadena de en binario.

    Ejemplo: 111111 – 101001 = 010110

    Porque las cadenas de son 1, a continuación, una buena potencia de dos, que ‘robar’ 1 a partir de la diferencia como de nueve a hacer en decimal.

    Cuando estamos usando negativo número binario, en realidad estamos diciendo simplemente:

    0000 – 0101 = x

    1111 – 0101 = 1010

    1111 + 0000 – 0101 = x + 1111

    Con el fin de ‘aislar’ x, tenemos que añadir 1 porque 1111 es una distancia de 10000 y nos quite el líder 1 que ya hemos añadido a la diferencia originaria.

    1111 + 1 + 0000 – 0101 = x + 1111 + 1

    10000 + 0000 – 0101 = x + 10000

    Acaba de quitar 10000 de ambos lados para obtener x, álgebra básica.

    OriginalEl autor

  9. 3

    Muchas de las respuestas hasta ahora muy bien explicar por qué el complemento a dos es usado para representar un número negativo, pero no nos dicen lo complemento a dos el número es, en particular, no se por qué un ‘1’, y, de hecho, a menudo se añade en un camino equivocado.

    La confusión proviene de una mala comprensión de la definición de complemento de un número. Un complemento es la parte que falta, que iba a hacer algo completo.

    El radix complemento de un n dígitos del número x en base b es, por definición, b^n-x.
    En binario 4 se representan por 100, que tiene 3 dígitos (n=3) y una base de 2 (b=2). Por lo que su base es b^n-x = 2^3-4=8-4=4 (o 100 en binario).

    Sin embargo, en binario la obtención de una base complemento no es tan fácil como conseguir su disminución radix complementario, que se define como (b^n-1)-y, a solo 1 menos que el de la base de complemento. Para conseguir una disminución de la base complemento, simplemente voltear todos los dígitos.

    100 -> 011 (disminuida (uno) radix complemento)

    para obtener el radix (dos) complementar, simplemente se añade 1, como la definición definido.

    011 +1 ->100 (complemento a dos).

    Ahora con esta nueva comprensión, vamos a echar un vistazo a la del ejemplo dado por
    Vicente Ramdhanie (ver arriba la segunda respuesta)

    /* inicio de Vicente

    La conversión de 1111 a decimal:

    El número comienza con 1, por lo que es negativo, por lo que nos encontramos con el complemento de 1111, que es 0000.
    Añadir de 1 a 0000, y obtenemos 0001.
    Convertir 0001 a decimal, que es 1.
    Aplicar el signo = -1.
    Tada!

    final de Vincent */

    Debe ser entendido como

    El número comienza con 1, por lo que es negativo. Por lo que sabemos que es un complemento a dos de un cierto valor de x. Para encontrar la x representada por su complemento a dos, primero necesitamos encontrar su complemento a 1.

    complemento a dos de x: 1111
    un complemento de x: 1111-1 ->1110;
    x = 0001, (flip todos los dígitos)

    aplicar el signo -, y la respuesta =-x =-1.

    OriginalEl autor

  10. 2

    Es una manera inteligente de codificación de enteros negativos, de tal manera que aproximadamente la mitad de la combinación de bits de un tipo de datos son reservados para los enteros negativos, y la adición de la mayoría de los enteros negativos, con sus correspondientes números enteros positivos resultados en un acarreo de desbordamiento que deja que el resultado sea cero binario.

    Así, en complemento a 2 si uno es 0x0001, a continuación, -1 es 0x1111, debido a que se traducirá en una suma de 0x0000 (con un desbordamiento de 1).

    OriginalEl autor

  11. 2

    2 Complementa: Cuando se añade un extra de uno con el de 1 complementa de una serie que vamos a conseguir el 2 complementa. Por ejemplo: 100101 es complemento a 1 es 011010 y complemento a 2 es 011010+1 = 011011 (Mediante la adición de uno con el complemento a 1) Para obtener más información
    en este artículo se explican gráficamente.

    plus1 de vínculo que tiene una explicación con círculo

    OriginalEl autor

  12. 1

    Me gustó lavinio la respuesta, pero de desplazamiento de bits añade algo de complejidad. A menudo hay una opción de mover bits, respetando el bit de signo o sin respetar el bit de signo. Esta es la elección entre el tratamiento de los números con signo (-8 a 7 para un nibble, -128 a 127 bytes) o de intervalo completo de números sin signo (de 0 a 15 para nibbles, de 0 a 255 bytes).

    OriginalEl autor

  13. 1

    Tuve el mismo problema hace un par de semanas. Terminé de leer acerca de ello en línea a partir de diversas fuentes, tratando de poner las piezas juntas, y escribir acerca de mí mismo sólo para asegurarme de que he entendido correctamente. Utilizamos complemento a dos, principalmente por dos razones:

    1. Para evitar múltiples representaciones de 0
    2. Para evitar el seguimiento de llevar poco (como en el complemento) en el caso de un desbordamiento.
    3. Llevar a cabo operaciones simples, como la suma y la resta se convierte en fácil.

    Si quieres una explicación más detallada de la cuestión a mano, intenta el artículo escrito por mí aquí. Espero que ayude!

    OriginalEl autor

  14. 1

    He leído una fantástica explicación en Reddit por jng, utilizando el cuentakilómetros como una analogía.

    ¿Qué es el

    Es una convención útil. Los mismos circuitos y la lógica de las operaciones que
    sumar /restar números positivos en binario seguir trabajando en positivo
    y los números negativos si el uso de la convención, es por eso que es tan
    útil y omnipresente.

    Imaginar el cuentakilómetros de un coche, alrededor de los rollos en (digamos) 99999. Si
    incremento 00000 usted obtener 00001. Si usted decremento 00000, consigue 99999
    (debido a la popularización de todo). Si se agrega uno nuevo a 99999 se remonta a
    00000. Lo que es útil para decidir que 99999 representa -1. Asimismo, es muy útil para decidir que 99998 representa -2, y así sucesivamente. Usted tiene
    a parar a alguna parte, y también por convención, la mitad superior de los números
    se considera negativo (50000-99999), y la mitad inferior positivo
    sólo se representan a sí mismos (00000-49999). Como resultado, la parte superior dígitos
    se 5-9 significa que el representado número es negativo, y de 0-4
    significa que el representado es positivo – exactamente el mismo que el de bits superior
    en representación de signo en complemento a dos del número binario.

    La comprensión de esto fue duro para mí también. Una vez que me puse y volví a
    re-lectura de los libros de artículos y explicaciones (no había internet
    en aquel entonces), resultó mucho de aquellas que describen realmente no
    entiendo. Me hizo escribir un libro de enseñanza de lenguaje de ensamblaje después de
    que (que lo venden bastante bien por 10 años).

    OriginalEl autor

  15. 0

    REFERENCIA: https://www.cs.cornell.edu/~tomf/notes/cps104/twoscomp.html

    Puedo invertir todos los bits y agregar 1. Programación:

      //in C++11
      int _powers[] = {
          1,
          2,
          4,
          8,
          16,
          32,
          64,
          128
      };
    
      int value=3;
      int n_bits=4;
      int twos_complement = (value ^ ( _powers[n_bits]-1)) + 1;
    
    Incluso ensamblador iba a ser muy alto nivel. Que necesito para ver una puerta de nivel esquemático de la suma lógica. Con T ciclos. Que a través de algoritmos correctos.

    OriginalEl autor

  16. -5

    La respuesta más simple:

    1111 + 1 = (1)0000. Así 1111 debe ser -1. Entonces -1 + 1 = 0.

    Es perfecto para entender estas todo para mí.

    Esto no proporciona una respuesta a la pregunta. Para la crítica o la solicitud de aclaración de un autor, deja un comentario debajo de su post.
    Es la respuesta. La más sencilla. Para mí, el mejor.

    OriginalEl autor

Dejar respuesta

Please enter your comment!
Please enter your name here