gia na anapsoyn ligo ta aimata :-)

Giorgos Keramidas keramida at ceid.upatras.gr
Thu Nov 10 08:31:47 EET 2005


On 2005-11-09 11:58, Haris Alatas <haris at crack.gr> 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 ενώ στην δεύτερη περίπτωση
> πειράζεις το τελευταίο.

Συγνώμη, αλλά όχι.  Το πρόγραμμα δεν «πειράζει» κανένα bit.  Η σωστή
απάντηση έχει σχέση με κάτι άλλο, που το πλησίασες παρακάτω:

> Όσο για τα AMd64 εκείνο το bit είναι κάτι ενδιάμεσο (απο τα 64), και
> βαριέμαι να κάτσω να σκεφτώ πρωινιάτικα τί ακριβώς bit είναι εκείνο.

Ε μη σκέφτεσαι, ωχού!

> Λοιπόν περιμένω το γλυκό

Πρέπει πρώτα να βρεις γιατί σε -std=c89 και -std=c99 mode υπάρχει
διαφορά, και ποια είναι η διαφορά.

> Αλλά τώρα που το σκέφτομαι, στα pc εκείνο το bit είναι το πρόσημο, στα
> sparc είναι το lsb και στο amd64 είναι το bit της
> 2147483648άδας.

Είσαι ΠΟΛΥ κοντά.

> χαχαχα θέλω όλο το κουτί με τα γλυκά

Δεν ανέφερα ποτέ *ΤΙ* θα είναι το κέρασμα, για να αφήσω μια μικρή
ευχέρεια στην επιλογή του.  Είσαι πολύ κοντά στο να ανακαλύψεις
την ακριβή διαφορά που συζητήσαμε με το Φώτη ένα απόγευμα στο
τηλέφωνο.

Μη βιάζεσαι όμως... είναι μια πολύ μικρή διαφορά που έχει η C99
από τη C89, και θέλει λίγο προσοχή για να την ψυλιαστείς :)





More information about the Linux-greek-users mailing list