Estoy desconcertado por la forma en la conversión de un valor binario a un char en c.

Por ejemplo, digamos que tengo 01010110 y desea imprimir el correspondiente de la letra ‘V’ de eso. ¿Cómo puedo hacer esto?

Gracias por la ayuda!

¿Qué significa tener «1010110»? El número binario en un registro, la 1/0 personajes, ¿qué? (Si el valor binario, un (char) yeso es todo lo que usted necesita.)
Nos muestran el código!! De lo contrario, estamos adivinando.

OriginalEl autor Jordan | 2012-05-30

3 Comentarios

  1. 14
    #include <stdio.h>
    #include <stdlib.h>
    int main(void)
    {
        char *data = "01010110";
        char c = strtol(data, 0, 2);
        printf("%s = %c = %d = 0x%.2X\n", data, c, c, c);
        return(0);
    }

    De salida:

    01010110 = V = 86 = 0x56

    Referencias:

    OriginalEl autor Jonathan Leffler

  2. 4

    Puede utilizar strtol() para analizar un número en una cadena. El último argumento (en este caso 2) es la base para la conversión.

    char c = strtol("01010110", (char **)NULL, 2);

    Más información sobre este y otros número de funciones de análisis aquí.

    OriginalEl autor fbafelipe

  3. -1

    Hizo algo ligeramente diferente:

    De los binarios, he calculado matemáticamente la int y simplemente convertir la int en un char.

    int i;
    char c = (char)i;
    La conversión final es auto-evidente; la mano saludando «de los binarios, he calculado matemáticamente la int’ no contiene ninguna información útil.

    OriginalEl autor Jordan

Dejar respuesta

Please enter your comment!
Please enter your name here