Ini nih yang biasanya bikin bingung para programmer ….. Gimana engga coba … Coding di OS (operating system) yang berbeda hasilnya kok bsa beda .. tentunya ada yg salah .. ho ho ho ….
yang membedakan little endian dengan big endian sebenernya adalah urutan byte nya. Untuk OS dengan processor yang berbeda biasanya memiliki endian yang berbeda (antara little & big). Misal:
big endian :
unsigned int a = 8;
printf(“a = 0x 8.8%x”, a);
maka akan mengeluarkan hasil 0×00000008
little endian :
unsigned int a = 8;
printf(“a = 0x 8.8%x”, a);
maka akan mengeluarkan hasil 0×08000000
perhatikan letak urutan per byte nya .. Klo kita meremehkannya bisa2 jadi kacau coding yang di buat karena salah encode/decoder per byte nya.
jadi, buat para coder yang mau porting code nya dari OS yang berbeda (misal, dari eCos:big endian , ke Linux:little endian) bisa menggunakan fungsi2 yang ada di byteswap.h
di dalam byteswap.h terdapat fungsi untuk swap tipe data dari big endian ke little endian dan sebaliknya. Contoh, kita akan men-swap 32 bit yang ada… berarti bisa menggunakan fungsi :
bswap_32(u32 data);
Hasil nya, jika little endian di swap,maka akan menjadi BIG endian …
he he he …. semoga bermanfaat …
.: ini sepertinya tulisannya tidak terstruktur dgn baik -.-; :.
3 responses so far ↓
andhy // April 12, 2009 at 1:32 am |
keep coding bro
Winnu Ayi // April 26, 2009 at 11:34 am |
wah mantap te…
cem kuliah sistem komputer aja nih
narpen // May 14, 2009 at 7:30 pm |
ooo.. gw baru tau klo endian ecos beda sama linux te..
(kemana aje lu pen -.-)