Kent Friis wrote:
> Den Thu, 17 Aug 2006 20:03:26 +0200 skrev Bertel Brander:
>> Jacob Jensen wrote:
>>>> En PC-processor er en little endian processor. Det vil sige at hvis du har
>>>> noget kode som:
>>>> unsigned test = 0x12345678;
>>>> så vil det i RAM blive gemt som 0x78 0x56 0x34 0x12
>>> Hvor 0x12 altså ligger i hukommelsescellen med den højste adresse?
>> Lad os se:
>>
>> #include <iostream>
>>
>> int main()
>> {
>> unsigned test = 0x12345678;
>> unsigned char *p = (unsigned char *)&test;
>> std::cout << std::hex << (unsigned int )p[0] << " " << (unsigned int
>> )p[1] << " " << (unsigned int )p[2] << " " << (unsigned int )p[3] <<
>> std::endl;
>> }
>>
>> Dette skriver:
>> 78 56 34 12
>> På min Intel PC, der er little endian.
>>
>> Så ja, 0x12 står på den højeste adresse.
>>
>> Eller man kan sige at det der står på den første byte
>> i ordet er LSB deraf little endian.
>
> Little end (ian) = den lille ende kommer først. Altså enerne står først.
> I modsætning til når vi skriver det, hvor det er den store ende
> (millionerne) der kommer først (big end (ian)).
>
> En million = 1.000.000 = big endian.
> En million = 000.000.1 = little endian.
>
> (Systemet er det samme uanset om vi snakker om titalssystemet eller
> binært).
Ja, der er dog ingen garanti for at maskinen er det ene
eller det andet, man kan godt have maskiner der ville
skrive:
56 78 12 34
Eller maskinen kunne have 32 bit char, hvorfor det ikke
giver mening at snakke om endianes.
--
Absolutely not the best homepage on the net:
http://home20.inet.tele.dk/midgaard
But it's mine - Bertel