🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: chile.comp.programacion
Article #2576

Portar codigo C entre maquinas de 32/64 bits?

#2576
From: Andres E. Hernando
Date: Mon, 12 Dec 2005 20:34
43 lines
2259 bytes
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.


-- 
"I actually voted for the $87 billion... before I voted against it."
			-- John F. Kerry
msn: a_hernand@msn.com
http://diferenciados.blogspot.com/  <-- mi huebloj!
http://www.humanclock.com/clock.php <-- mi reloj!
Technical Details
Message-ID: <40656sF18epvjU1@individual.net>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Thread: 1593cb,88c16e828b86c7df,start
X-Google-Attributes: gid1593cb,public
X-Google-Language: SPANISH,ASCII-7-bit
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: "Andres E. Hernando" <NOherSPnandoAM@fas.harvard.edu>
Newsgroups: chile.comp.programacion
Subject: Portar codigo C entre maquinas de 32/64 bits?
Date: 12 Dec 2005 20:34:36 GMT
Lines: 43
Message-ID: <40656sF18epvjU1@individual.net>
X-Trace: individual.net EzclX2nBGRfZNNTqs/uhJAGl19vz37wpzUr8Scd1pDby4SzYDW
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))