elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Como hacer un shift a derecha en un char?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como hacer un shift a derecha en un char?  (Leído 1,242 veces)
palacio29

Desconectado Desconectado

Mensajes: 103


Ver Perfil
Como hacer un shift a derecha en un char?
« en: 4 Septiembre 2016, 23:41 pm »

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

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.    char letra;
  7.    int i=7;
  8.    printf ("Ingrese una letra: \n");
  9.    letra=getche();
  10.    printf ("\n");
  11.    while (i>=0)
  12.    {
  13.        if (letra&(1<<i))
  14.        {
  15.            printf ("1");
  16.        }
  17.        else
  18.        {
  19.            printf ("0");
  20.        }
  21.  
  22.    i--;
  23.  
  24.  
  25.    }
  26.  
  27.  
  28.  
  29.  
  30.    return 0;
  31.  
  32.  
  33. }

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


En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.697


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Como hacer un shift a derecha en un char?
« Respuesta #1 en: 5 Septiembre 2016, 00:32 am »

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

Código
  1.    while (i>=0)
  2.    {
  3.  
  4.        letra=letra>>1;
  5.        printf("%i",(letra % 2)? 1:0);
  6.    i--;
  7.    }


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines