Como hacer un shift a derecha en un char?

Iniciado por palacio29, 4 Septiembre 2016, 23:41 PM

0 Miembros y 1 Visitante están viendo este tema.

palacio29

Hola

Tengo problemas con el siguiente ejercicio "Realizar una función que efectúe el SHIFT A DERECHA completando con 0 desde la izquierda. Aplicarla en
un programa de ejemplo. "

Se hacerlo con el shift a la izquierda pero no me sale con el shift a derecha, ni tampoco se como completar con 0 desde la izquierda, estoy re perdido con este.

Basicamente el programa tiene que

- Pedir letra
- Realizar la funcion
- Mostrar la letra en binario.

Con el de la izquierda no tengo problemas y me quedo asi

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char letra;
    int i=7;
    printf ("Ingrese una letra: \n");
    letra=getche();
    printf ("\n");
    while (i>=0)
    {
        if (letra&(1<<i))
        {
            printf ("1");
        }
        else
        {
            printf ("0");
        }

    i--;


    }




    return 0;


}


Como tendria que modificarlo para que me quede como me piden?..Porque siempre use el izquierdo.

AlbertoBSD

La idea es la misma solo tendria que invertir la direccion.

    while (i>=0)
    {

        letra=letra>>1;
        printf("%i",(letra % 2)? 1:0);
    i--;
    }
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW