 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Támara Invitado
|
Publicado: Jue 15 Jul, 2004 6:09 pm Asunto: Una ayudita porfavor |
|
|
Gracias guapo, bueno ahora no se si me podreis ayudar: resulta que me dan una seri ede numeros y necesito codificarlos tal q así:
Values Category Bits for the value
0______________ 0____________-
-1,1 _____________1 __________0,1
-3,-2,2,3 __________2 ________00,01,10,11
-7,-6,-5,-4,4,5,6,7___3____000,001,010,011,100,101,110,111
y así con todos, porfavor es mu urgente kien sepa algo q lo ponga en el maravilloso foro. Gracias! |
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Vie 16 Jul, 2004 1:39 am Asunto: Re: Una ayudita porfavor |
|
|
| Por que no te explicas un poco mejor |
|
| Volver arriba |
|
 |
Támara Invitado
|
Publicado: Vie 16 Jul, 2004 9:28 am Asunto: |
|
|
| Vamos a ver se trata de la codificación huffman tengo q codificar muchas cosas y es mucho mas complicado pero sabiendo lo q he preguntado ya sabría hacerlo, a ver si tengo una serie de numeros, por ejemplo un arreglo de numerosy tengo qw ir codificando uno por uno en binario e ir metiendolos en un archivo q será un jpeg, como lo hago? |
|
| Volver arriba |
|
 |
Tamara Invitado
|
Publicado: Sab 17 Jul, 2004 10:54 am Asunto: |
|
|
Bueno parece que nadie sabe na jo , miren si yo os doi una serie de numeros y os digo qw la metais en un archivo en binario como lo hariais ???? |
|
| Volver arriba |
|
 |
Támara Invitado
|
Publicado: Sab 17 Jul, 2004 12:23 pm Asunto: |
|
|
Mirad he pensado algo como esto:
void ConvDecBin(int nValor,FILE *f)
{
AnsiString cBin = "";
while (nValor > 1)
{
cBin = IntToStr(nValor % 2) + cBin;
nValor = INT(nValor / 2);
}
cBin = IntToStr(nValor) + cBin;
fwrite(cBin.c_str(),4,1,f);
}
Aunque los numeros negativos no se graban en binario tengo q arreglarlo , pero no se si eso realemnte es binario pq como dicen opor ahi q si metes un 1 en ascii es otro y realmente no es un bit no tengo ni idea . ¿pq respondeis cosas tan dificiles y ami nada eh?? pq soy chica?jeje es broma.espero vuestra ayuda |
|
| Volver arriba |
|
 |
Támara Invitado
|
Publicado: Lun 19 Jul, 2004 5:23 pm Asunto: |
|
|
ya se pasar los números a binario pero en cadena de caracteres :
0______________ 0____________-
-1,1 _____________1 __________0,1
-3,-2,2,3 __________2 ________00,01,10,11
-7,-6,-5,-4,4,5,6,7___3____000,001,010,011,100,101,110,111
/*****************************************************/
AnsiString num;
num=ConvDecBin(16) me daria resultado num="10000" lo q me gustaria es apartir de esa informacion , o si se puede hacer de otra manera decirmelo, bueno apartir de esa informacion registrar en un fichero binario el bit 1 bit 0 , 0 , 0 , 0 es decir q ocupe 5 bits(en este caso el 16), pq si yo registro directamente el "1""0""0""0""0" no seria 5 bits si no 5*8bytes .AYUDADMEEEEEE.GRACIASSSS.
/******************************************************/
int Categoria(int a) /*correcto*/
{
double res;
if (a<0)
{
a=a-2*a;
}
if (a!=0)
{
res=log(a)/log(2);
res=int(res);
res=res+1;
}
else
{
res=0;
}
return res;
}
/******************************************************/
AnsiString ConvDecBin(int nValor) /*correcto*/
{ int l,cat;
AnsiString cBin = "";
if (nValor>0)
{
while (nValor > 1)
{
cBin = IntToStr(nValor % 2) + cBin;
nValor = INT(nValor / 2);
}
cBin = IntToStr(nValor) + cBin;
}
else if (nValor<0)
{ cat=Categoria(nValor);
nValor=pow(2,cat)-1+nValor;
while (nValor > 1)
{
cBin = IntToStr(nValor % 2) + cBin;
nValor = INT(nValor / 2);
}
cBin = IntToStr(nValor) + cBin;
l=cBin.Length();
if (l<cat)
{ while (l<cat)
{
cBin="0"+cBin;
l=l+1;
}
}
}
else
{
cBin="0";
}
return cBin;
} |
|
| Volver arriba |
|
 |
Támara Invitado
|
Publicado: Mar 20 Jul, 2004 10:27 pm Asunto: |
|
|
| NADIE SABE GUARDAR EN UN ARCHIVO 3 bits???solo eso!!!!!!!! |
|
| Volver arriba |
|
 |
kalux Master


Registrado: 21 Nov 2003Mensajes: 313Ubicación: Alicante - España
|
Publicado: Mar 20 Jul, 2004 11:51 pm Asunto: |
|
|
Hola.
Vamos a ver, creo que no te entendido.
Igual estoy equivocado, pero tu al guardar, guardas 1 byte = 8 bits que van desde el 00 al FF (0 a 255). Al guardar un 1 en realidad guardas 0000 0001 = 01.
Otra cosa es que tu te lo codifiques, es decir si tienes 10000 (binario) = 0001 0000 = 10 (en hexadecimal).
No se si voy bien o voy mal .....
Resumiendo, creo no puedes guardar solo 3 bits.... lo minimo es 1 byte. |
|
| Volver arriba |
|
 |
Támara Invitado
|
Publicado: Mie 21 Jul, 2004 9:34 am Asunto: |
|
|
| Joer! |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mie 21 Jul, 2004 10:04 am Asunto: |
|
|
Siguiendo la logica, se me hace mas compresible, guardar un 1 byte que represente, el codigo que tu estas enviando...
por ejemplo 16 en binaro exacatemente es "10000", pero recuerda esta es la representacion, como nosotoros lo vemos..
que te parece si en lugar de guardar los 5 numeros, lo respresentas, como un caracter del codigo ascii, asi el numero de 16, lo mandas como un byte, del tipo char...
y en el archivo binario en lugar de poner los 5 digitios
"1" "0""0""0""0""0" = los representas por el caracter ascii Numero 16..
asi grabas el valor y estas ocupando un byte, _________________
 |
|
| Volver arriba |
|
 |
Támara Invitado
|
Publicado: Mie 21 Jul, 2004 10:13 am Asunto: |
|
|
| Efectivamente César comprendo lo que dices, pero es q después necesariamente necesito guardar números cuya codificación no tiene lógica es decir imaginate q el 16 lo kiero codificar con 010101 así mismo por ejemplo. |
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Mie 21 Jul, 2004 10:23 am Asunto: |
|
|
| Bueno el numero que me muestras no es 16 es 21, y ese es otro codigo ascii, si tienes msn, te puedes conectar conmigo... |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mie 21 Jul, 2004 10:25 am Asunto: |
|
|
El de arriba soy yo.. ji , se me fue el login _________________
 |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|