Dipecahkan: c mendeteksi endianness

Pembaharuan Terakhir: 09/11/2023

Endianness mengacu pada urutan berurutan di mana byte disusun menjadi nilai numerik yang lebih besar saat disimpan dalam memori atau selama transmisi. Dua jenis endian utama yang ada adalah endian besar dan endian kecil. Big endian adalah byte paling signifikan di alamat terkecil dan little endian adalah byte paling tidak signifikan di alamat terkecil. Dalam pemrograman C, endianness penting saat Anda membaca data biner secara langsung tanpa menggunakan operator ekstraksi. Lihat solusi dan rincian profesional terperinci dari kode yang disediakan untuk mendeteksi endianness suatu sistem. Selain itu, Anda akan belajar tentang pentingnya perpustakaan dan fungsi yang terlibat dalam memecahkan masalah yang tampaknya rumit ini.

#include<stdio.h>

int main() 
{
   unsigned int i = 1;
   char *c = (char*)&i;
   if (*c)   
       printf("Little endian");
   else
       printf("Big endian");
   return 0;
}

Penjelasan Kode Langkah-demi-Langkah

Cuplikan kode yang disediakan ditulis dalam C, bahasa pemrograman prosedural untuk tujuan umum yang akan menentukan endianness suatu sistem.

Pertama, mari kita analisis #include ini adalah perintah pra-prosesor yang mencakup pustaka input/output standar. Pustaka ini diperlukan agar berbagai fungsi seperti “printf” dan “getchar” dapat berfungsi di sebagian besar sistem.

Fungsi Kunci dan Variabel

Selanjutnya fungsi utama dideklarasikan. Ini adalah titik masuk dari setiap program C. Dalam fungsi ini, bilangan bulat i yang tidak ditandatangani dideklarasikan dan diinisialisasi ke 1, dan penunjuk karakter 'c' dideklarasikan dan diinisialisasi ke alamat i.

Pernyataan kondisi berikut memeriksa apakah byte pertama dalam karakter yang ditunjuk oleh 'c' adalah 1 atau 0. Jika 1, sistemnya adalah little endian, jika tidak, maka sistemnya adalah big endian.

Pemeriksaan bersyarat ini membentuk inti program dan merupakan logika yang kami gunakan untuk mendeteksi endianness sistem.

Fungsi printf digunakan untuk menampilkan “Little endian” atau “Big endian” berdasarkan hasil pemeriksaan bersyarat kami. Itu milik perpustakaan stdio.h dan digunakan untuk pemformatan keluaran.

Memahami Perpustakaan

Stdio.h adalah pustaka standar dalam pemrograman C yang mencakup definisi tipe, makro, dan fungsi untuk tugas-tugas seperti operasi input/output, akses file, penanganan string, dll. Stdio.h memainkan peran penting dalam menampilkan output ke layar.

Memahami Tipe Data dan Pointer

Dalam pemrograman C, pointer adalah variabel yang menyimpan alamat variabel lain. Di sini, 'char *c' adalah penunjuk ke suatu karakter.

Operator bitwise '&' digunakan untuk mendapatkan alamat 'i' dan menugaskannya ke 'c'. Tujuan dari operasi ini adalah untuk mendapatkan representasi tingkat byte dari variabel integer 'i' untuk memeriksa endiannessnya.

Ringkasnya, mendeteksi endianness suatu sistem sangat penting dalam tugas pemrograman tingkat rendah tertentu, dan kode ini menyediakan metode sederhana untuk memeriksa endianness menggunakan bahasa pemrograman C. Selain itu, memahami pustaka, fungsi, tipe data, dan penunjuk yang diterapkan dalam potongan kode ini akan memberikan dasar yang kuat untuk perjalanan Anda dalam pemrograman C.

Pos terkait: