gia na anapsoyn ligo ta aimata :-)

Giannis Papadopoulos ipapadop at inf.uth.gr
Thu Nov 10 11:29:03 EET 2005


Haris Alatas wrote:
> Giorgos Keramidas wrote:
> 
>>On 2005-11-09 04:05, Fotis Georgatos <gef at ceid.upatras.gr> wrote:
>>  
>>
>>>#define TESTNUM1 -(1<<31)
>>>#define TESTNUM2 -2147483648
>>>
>>>int main (void)
>>>{
>>>  if ( TESTNUM1 == TESTNUM2 )
>>>    printf("The numbers are equal: %d %d\n", TESTNUM1, TESTNUM2 );
>>>  if ( 0 < TESTNUM1 )
>>>    printf("Your lucky number TESTNUM1 is positive: %d\n", TESTNUM1 );
>>>  if ( 0 < TESTNUM2 )
>>>    printf("Your lucky number TESTNUM2 is positive: %d\n", TESTNUM2 );
>>>  return 0;
>>>}
>>>    
>>>
>>
>>Kai gia na xontrynei ligo to paixnidi...
>>
>>Opoios brei kai giati ayto to programma tupwnei diaforetika
>>apotelesmata se i386, sparcv9 kai amd64 mhxanhna, kai grapsei sth
>>lista akribws giati blepei ayta poy blepei se kathe mhxanhma,
>>kerdizei kerasma apo mena, pou 8a to steilw me dika mou eksoda
>>spiti tou.
>>
> Γιατί εσυ του πειράζεις το bit εκεί πέρα. Τα sparc είναι big endian ενώ
> τα ι386 είναι little endian. Δηλαδή εσύ πειράζεις στην πρώτη περίπτωση
> το πρώτο bit ενώ στην δεύτερη περίπτωση πειράζεις το τελευταίο.

Τσουκ, σωστό είναι. Ότι και να κάνεις, ο compiler καταλαβαίνει ότι
θέλεις να κάνεις ολίσθηση και βγάζει τον ανάλογο κώδικα. Αν ήταν έτσι
όπως τα λες, προγράμματα με ολίσθηση σε big endian δεν θα έπαιζαν σε
little και τούμπαλιν...



-- 
one's freedom stops where others' begin

Giannis Papadopoulos
Computer and Communications Engineering dept. (CCED)
University of Thessaly
http://dop.users.uth.gr



More information about the Linux-greek-users mailing list