Thread View: pl.comp.lang.c
5 messages
5 total messages
Started by Guest
Sun, 18 Jan 1998 12:46
byte-ordering
Author: Guest
Date: Sun, 18 Jan 1998 12:46
Date: Sun, 18 Jan 1998 12:46
7 lines
627 bytes
627 bytes
Czesc, Czy ktos moglby mi w miare dokladnie wytlumaczyc co to jest ten byte-ordering (pojecia type big-endian, little... itd.) Dziekuje i pozdrawiam, Marcin
Re: byte-ordering
Author: Piotr Teczynski
Date: Sun, 18 Jan 1998 13:57
Date: Sun, 18 Jan 1998 13:57
15 lines
1050 bytes
1050 bytes
Guest <guest@manjak.knm.org.pl> wrote: >Czy ktos moglby mi w miare dokladnie wytlumaczyc co to >jest ten byte-ordering (pojecia type big-endian, little... itd.) Big-endian i little-endian to ze Swifta :-) Jesli zas myslisz o Perlu to tam to jest w znaczeniu, w jakiej czesci slowa jest przechowywany najbardziej (czy komplementarnie najmniej) znaczacy bajt. //pt -- Piotr Teczynski mailto:pt@kki.net.pl.no.spam http://kki.net.pl/pt/ When replying, mv .no.spam /dev/null
Re: byte-ordering
Author: Qrczak
Date: Sun, 18 Jan 1998 15:21
Date: Sun, 18 Jan 1998 15:21
43 lines
2830 bytes
2830 bytes
On 18 Jan 1998, Guest wrote:
> Czy ktos moglby mi w miare dokladnie wytlumaczyc co to
> jest ten byte-ordering (pojecia type big-endian, little... itd.)
Te pojęcia określają kolejność bajtów w liczbach wielobajtowych (głównie
dwu- i czterobajtowych).
Big Endian: Bajty są zapisane "od końca" (niektórzy uważają, że to jest
"od początku"), od bardziej znaczących bitów do mniej, od bitu
ostatniego do zerowego. Czyli w przypadku liczby dwubajtowej w bajcie o
adresie 0 są bity 8..15, a w bajcie o adresie 1 - bity 0..7. W przypadku
liczby czterobajtowej w kolejnych bajtach są bity 24..31, 16..23, 8..15,
0..7.
Little Endian: Bajty są zapisane "od początku" (niektórzy uważają, że to
jest "od końca"), od mniej znaczących bitów do bardziej, od bitu
zerowego do ostatniego. Czyli w przypadku liczby dwubajtowej w bajcie o
adresie 0 są bity 0..7, a w bajcie o adresie 1 - bity 8..15. W przypadku
liczby czterobajtowej w kolejnych bajtach są bity 0..7, 8..15, 16..23,
24..31. Zauważmy, że znaczenie początku liczby czterobajtowej pokrywa
się z liczbą dwubajtową - waga bitu wielobajtowej liczby zależy tylko od
jego pozycji, a nie zależy od długości liczby. W przypadku Little
Endiana ity bit jest (i % 8)ym bitem (i / 8)ego bajtu, a w przypadku Big
Endiana ity bit jest (i % 8)ym bitem (N - (i / 8) - 1)ego bajtu, gdzie N
jest długością liczby w bajtach, albo ((n - i - 1) / 8)ego, gdzie n jest
długością w bitach. Widać więc, że Little Endian jest ideologicznie
prostszy - praktycznie jedynym wytłumaczeniem Big Endiana jest to, że
człowiek tradycyjnie zapisuje liczby na papierze od końca, od ostatniej
cyfry do zerowej.
Intele używają Little Endiana. Motorole używają Big Endiana. AFAIK po
Internecie zwykle biegają Big Endiany. Jedne formaty graficzne używają
jednego, inne drugiego, a np. TIFF zaczyna się od znacznika
określającego ten porządek.
Mała święta wojna na ten temat jest teraz na pl.listserv.sf-f.
--
QRCZAK
__("< Marcin Kowalczyk
\__/ qrczak@knm.org.pl
^^ http://qrczak.home.ml.org/
Re: byte-ordering
Author: Marek Kotowski
Date: Tue, 20 Jan 1998 14:13
Date: Tue, 20 Jan 1998 14:13
25 lines
1537 bytes
1537 bytes
Guest wrote: > > Czesc, > > Czy ktos moglby mi w miare dokladnie wytlumaczyc co to > jest ten byte-ordering (pojecia type big-endian, little... itd.) Prawde rzeklszy, jest to wiedza dla wiekszosci programistow kodujacych np. w C zbedna. Programista nie musi wiedziec, jak ulozone sa bajty w zmiennych typu int lub long. Jesli w programie wykorzystuje sie konkretne uporzadkowanie bajtow w liczbie, to program z definicji jest nieprzenosny. Jest bez watpienia jeden przypadek, gdy programista powinien znac uporzadkowanie bajtow w liczbie: kiedy liczbe te zapisuje w pliku, ktory ma czy moze byc czytany na innym komputerze, o innym uporzadkowaniu bajtow w liczbie. Trzeba wtedy znac porzadek bajtow w obydwu komputerach (w programie latwo stwierdzic, jak uporzadkowane sa bajty, np. w liczbie calkowitej, w komputerze, na ktorym program dziala) i przed zapisem czy po odczycie liczb z pliku dokonac odpowiedniej konwersji. Pozdrawiam Marek Kotowski
Re: byte-ordering
Author: Piotr Gackiewicz
Date: Tue, 20 Jan 1998 16:27
Date: Tue, 20 Jan 1998 16:27
26 lines
1866 bytes
1866 bytes
Marek Kotowski <mkot@imm.org.pl> wrote: > Guest wrote: >> Czy ktos moglby mi w miare dokladnie wytlumaczyc co to >> jest ten byte-ordering (pojecia type big-endian, little... itd.) > Prawde rzeklszy, jest to wiedza dla wiekszosci programistow > kodujacych np. w C zbedna. Programista nie musi wiedziec, jak > ulozone sa bajty w zmiennych typu int lub long. Jesli w programie > wykorzystuje sie konkretne uporzadkowanie bajtow w liczbie, to > program z definicji jest nieprzenosny. > Jest bez watpienia jeden przypadek, gdy programista powinien > znac uporzadkowanie bajtow w liczbie: kiedy liczbe te zapisuje > w pliku, ktory ma czy moze byc czytany na innym komputerze, o > innym uporzadkowaniu bajtow w liczbie. Trzeba wtedy znac > porzadek bajtow w obydwu komputerach (w programie latwo > stwierdzic, jak uporzadkowane sa bajty, np. w liczbie > calkowitej, w komputerze, na ktorym program dziala) > i przed zapisem czy po odczycie liczb z pliku dokonac > odpowiedniej konwersji. Dodałbym do tego jeszcze komunikację procesów w środowisku heterogenicznym. Wprawdzie technicznie to to samo - pisanie do pliku, ale zawsze lepiej brzmi :-). Gacek.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads