Convertir rango de números en binario con signo magnitud

Iniciado por djmorales, 4 Junio 2017, 22:39 PM

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

djmorales

El ejercicio que quiero realizar es: Convertir el rango de números que ya halle con mi programa y convertirlos a binario y aumentarle una posición para diferenciar el signo, siendo 1=negativo y 0=positivo, espero me puedan ayudar y se los agradezco de antemano.

Pdt: Todavía soy principiante :)

Si ingreso 3 bits
x | 1 | 1
   2 + 1 = 3

(2^n)-1 = 4-1=3
-4 hasta 3

Sabemos que existe +_0 se le suma +1 al lado negativo

[-4,-3,-2,-1,0,+1,+2,+3]

AL imprime se sume una posición a la Izquierda para el signo

Imprima 1 100 -4
   -3    1 011
   -2    1 010
   -1    1 001
        0    0 000
      +1    0 001
      +2    0 010
      +3    0 011

CODIGO TEMPORAL

Código (cpp) [Seleccionar]
#include <iostream>
#include <stdlib.h>
#include <math.h>
using namespace std;

int main()
{
  int num,rgf,rgi,contador;
 
  cout<<"Ingrese un numero de bits: ";
  cin>>num;
 
  rgi=pow(2,num-1)*(-1);
  rgf=pow(2,num-1)-1;
   
  for(contador=rgi; contador<=rgf; contador++)
  { 
    cout<<endl<<contador;
  }
}


MOD: Titulo pasado a minusculas. Etiquetas GeSHi.

MAFUS

Tienes el operador sizeof() para conocer el tamaño de tu dato y junto con dos operadores, el de desplazamiento ( << ) y el AND a nivel de bit ( & ) tienes las herramientas necesarias para realizar tu programa.