🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: chile.comp.programacion
Article #2584

Re: Portar codigo C entre maquinas de 32/64 bits?

#2584
From: Andres E. Hernando
Date: Tue, 13 Dec 2005 05:45
56 lines
2678 bytes
On Mon, 12 Dec 2005 18:22:24 -0300, Esteban Navarro wrote:
> no puedes usar un arreglo de 4 chars?

	Eso puede funcionar... lo voy a probar y te cuento,
gracias.

	Saludos,
	AHG.

> 
> Andres E. Hernando wrote:
>> Hola!
>>       
>>       Seguro que estoy poniendo en evidencia lo oxidado que
>> estoy, pero mi copia del Kernighan y Ritchie esta juntando 
>> polvo en Chile y necesito arreglar esto antes de irme...
>> 
>>       Bueno, por alguna razon (no importa cual) tengo que
>> usar un generador de numeros pseudoaleatorios externo en 
>> Matlab. Por un tema de eficiencia, lo estoy haciendo en C
>> usando mex files.
>> 
>>       El PRNG (Pseudo Random Number Generator) que tengo que
>> usar es una version de KISS (Keep It Simple, Stupid) que usa
>> operaciones de bits en uno de sus generadores. Basicamente,
>> la siguientes lineas:
>> 
>>       y  ^= y << 13;
>>       y  ^= y >> 17;
>>       y  ^= y <<  5;
>> 
>>       Donde y es un numero de 32 bits... Y aqui esta todo
>> mi problema, porque tengo que compartir esto y tiene que 
>> funcionar igual en maquinas de 32 y de 64 bits. Por lo que 
>> declarar y como "unsigned long int" no me funciona ya que 
>> en la maquina Linux donde tiene que correr, un "unsigned
>> long int" es de 64 bits, asi que los shifts/xor me generan
>> resultados distintos en cada maquina.
>> 
>>       Estoy seguro que debe haber una forma de asegurarme
>> que y es siempre de 32 bits independiente de la arquitectura, 
>> pero hace como 4 annos que no programo en C... Algun puntero
>> a la ayuda adecuada?
>> 
>>       Saludos,
>>       AHG.
>> 
>> 

-- 
Democracy is two wolves and a lamb voting on what to have for lunch. 
Liberty is a well-armed lamb contesting the vote! 
						--Benjamin Franklin 
msn: a_hernand@msn.com
http://diferenciados.blogspot.com/  <-- mi huebloj!
http://www.humanclock.com/clock.php <-- mi reloj!
Technical Details
Message-ID: <4075fuF18utn8U2@individual.net>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
References: <40656sF18epvjU1@individual.net> <dnkpmb$kvu$1@helcaraxe.dcc.uchile.cl>

Show Full Headers
Complete Article Headers
X-Google-Thread: 1593cb,88c16e828b86c7df
X-Google-Attributes: gid1593cb,public
X-Google-Language: SPANISH,ASCII-7-bit
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: "Andres E. Hernando" <NOherSPnandoAM@fas.harvard.edu>
Newsgroups: chile.comp.programacion
Subject: Re: Portar codigo C entre maquinas de 32/64 bits?
Date: 13 Dec 2005 05:45:35 GMT
Lines: 56
Message-ID: <4075fuF18utn8U2@individual.net>
References: <40656sF18epvjU1@individual.net> <dnkpmb$kvu$1@helcaraxe.dcc.uchile.cl>
X-Trace: individual.net VQsnAl5XnTvM1oj9n0D6oARJBX6Axt3hIKq16F+78wbnCBxIQ5
X-Orig-Path: not-for-mail
User-Agent: tin/1.6.2-20030910 ("Pabbay") (UNIX) (CYGWIN_NT-5.1/1.5.18(0.132/4/2) (i686))