Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/03/2009, 17:59
jessiebm
 
Fecha de Ingreso: marzo-2009
Mensajes: 4
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Valores int a binarios en char

Hola, gracias por la aportación, creo que tambien se puede hacer así si no me equivoco. Pongo el código:
//------------------------------------------------------------------------------------------------------
int valores[] = {1,3,2,0,5,4};
unsigned char buffer[3];
char result[100]; //Para mostrar los valores en binario con itoa


int cont = 0; //Para incrementar el indice de los valores
for(int i=0; i<3;i++){
buffer[i] = (valores[cont]<<4) | (valores[cont+1]); // Acomoda los numeros en
//la parte baja y alta
itoa(buffer[i],result,2); //Convierte a binario
cout<< result <<"\n"; //Muestrael valor binario en pantalla
cont=cont+2;
}
//----------------------------------------------------------------------------------------------------


Pongo también el código completo para escribirlo y abrirlo de un archivo.

//-------------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <sstream>
#include <fstream>
#include <iostream>
#include <cstdlib>

using namespace std;

int main ()
{

int valores[] = {1,3,2,0,5,4};
ofstream oss("datos.bin", ios::binary); //Declaracion archivo de salida
ifstream iss("datos.bin", ios::binary); //Declaración archivo de entrada

unsigned char buffer[3];
char result[100]; //Para mostrar los valores en binario


int cont = 0; //Para incrementar el indice de los valores
for(int i=0; i<3;i++){
buffer[i] = (valores[cont]<<4) | (valores[cont+1]); // Acomoda los
// numeros en la parte baja y alta
oss.write((char const*)&buffer[i], 1); // Lo escribe en archivo
itoa(buffer[i],result,2); //Convierte a binario
cout<< result <<"\n"; //Muestrael valor binario en pantalla
cont=cont+2;
}

oss.close();

char v;
for(int i=0; i<3; i++){
iss.read((char*)&v, sizeof(v)); //Lee los valores del archivo
cout <<(int)v << " "; //Los despiega en pantalla con valores
}

return 0;
}
//-----------------------------------------------------------------------------------

Para este ejemplo, que se introdujo int valores[] = {1,3,2,0,5,4};
los valores leidos y mostrados del archivo son : 19 32 84
que en binario seria:
00010011 , 00100000, 01010100

Espero y no estar equivocandome en algo. Gracias