Asas Kejuruteraan Balikan & Analisis Binari · Pelajaran

Perwakilan Data dalam Binari

Pelajari cara jenis data (integer, nombor apungan dan rentetan) disimpan dalam memori serta fail, termasuk konsep seperti susunan endian.

Pelajaran 2 daripada 411 langkah

Perwakilan Data dalam Binari ialah pelajaran Asas Kejuruteraan Balikan & Analisis Binari percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Asas Kejuruteraan Balikan & Analisis Binari, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Asas Kejuruteraan Balikan & Analisis Binari merangkumi sejumlah 4 pelajaran.

Apakah Data Binari?

Apabila anda melakukan kejuruteraan balik, anda melihat bentuk binari mentah sesebuah atur cara. Ini bermaksud memahami cara semua jenis data—nombor, teks dan banyak lagi—disimpan sebagai jujukan bit dan bait.

Bit ialah unit terkecil, sama ada 0 atau 1. Lapan bit membentuk satu bait. Segala yang dilakukan oleh komputer, daripada pengiraan hingga memaparkan teks, bergantung pada unit asas ini.

Nombor sebagai Bit: Integer

Integer ialah nombor bulat. Integer boleh bertanda (positif atau negatif) atau tidak bertanda (hanya bukan negatif). Bilangan bait yang digunakan menentukan julat nilai yang boleh disimpan oleh integer.

  • Bait (8-bit): 0 hingga 255 (tidak bertanda) atau -128 hingga 127 (bertanda).
  • Word (16-bit): Sehingga 65,535 (tidak bertanda).
  • DWord (32-bit): Sehingga kira-kira 4 bilion (tidak bertanda).
  • QWord (64-bit): Nombor yang jauh lebih besar!

Saiz Integer Penting

Mari lihat cara saiz integer yang berbeza mempengaruhi nilai maksimum. Kod Python ini menunjukkan nilai maksimum bagi integer 8-bit tidak bertanda (satu bait) dan integer 8-bit bertanda.

# Max unsigned 8-bit integer
max_8_bit_unsigned = 2**8 - 1
print(f"Max 8-bit unsigned: {max_8_bit_unsigned}")

# Max signed 8-bit integer
max_8_bit_signed = 2**7 - 1
min_8_bit_signed = -2**7
print(f"Max 8-bit signed: {max_8_bit_signed}")
print(f"Min 8-bit signed: {min_8_bit_signed}")

Nombor Titik Apung (Float)

Nombor yang mempunyai titik perpuluhan, seperti 3.14 atau -0.5, dipanggil nombor titik apung. Nombor ini disimpan secara berbeza daripada integer untuk mengendalikan bahagian pecahannya.

Kebanyakan sistem menggunakan piawaian IEEE 754 untuk float. Piawaian ini mentakrifkan cara tanda, eksponen dan bahagian pecahan nombor diwakili dalam bit. Saiz yang lazim ialah 32-bit (ketepatan tunggal) dan 64-bit (ketepatan berganda).

Teks: Aksara & Rentetan

Aksara teks juga disimpan sebagai nombor. Pemetaan yang paling lazim untuk aksara bahasa Inggeris ialah ASCII, yang setiap aksaranya (seperti 'A' atau '!') sepadan dengan nombor 8-bit tertentu.

Untuk julat aksara yang lebih luas (emoji, bahasa asing), Unicode digunakan. UTF-8 ialah pengekodan Unicode yang popular dan menggunakan 1 hingga 4 bait bagi setiap aksara, menjadikannya fleksibel serta serasi ke belakang dengan ASCII.

Rentetan hanyalah jujukan aksara ini, yang lazimnya berakhir dengan bait nol (0x00) untuk menandakan penghujungnya.

Cara Rentetan Menjadi Bait

Beginilah rentetan ringkas diwakili sebagai bait menggunakan UTF-8. Perhatikan bahawa setiap aksara menerima nilai berangka.

message = "Hello"
bytes_message = message.encode('utf-8')
print(f"String: '{message}'")
print(f"Bytes (UTF-8): {bytes_message}")

# Example with a non-ASCII character
smiley = "😊"
bytes_smiley = smiley.encode('utf-8')
print(f"String: '{smiley}'")
print(f"Bytes (UTF-8): {bytes_smiley}")

Endianness: Susunan Bait

Apabila sekeping data, seperti integer 32-bit, menggunakan lebih daripada satu bait, satu pilihan perlu dibuat: bait yang manakah datang dahulu dalam ingatan? Susunan ini dipanggil endianness.

  • Big-endian: Bait paling bererti (MSB) datang dahulu. Bayangkan anda membaca nombor dari kiri ke kanan, seperti "123", dengan '1' sebagai digit paling bererti.
  • Little-endian: Bait paling kurang bererti (LSB) datang dahulu. Ini seperti menulis "321" jika '1' ialah digit paling bererti.

Menggambarkan Endianness

Mari ambil nombor heksadesimal 32-bit 0x12345678. Nombor ini mempunyai empat bait: 12, 34, 56, 78.

  • Big-endian: Menyimpan bait dalam ingatan sebagai 12 34 56 78 (MSB dahulu).
  • Little-endian: Menyimpan bait dalam ingatan sebagai 78 56 34 12 (LSB dahulu).

Kebanyakan CPU Intel/AMD moden (x86/x64) menggunakan little-endian. Protokol rangkaian lazimnya menggunakan big-endian.

Endianness & Kejuruteraan Balik

Memahami endianness amat penting apabila anda bekerja dengan data binari mentah, khususnya merentas sistem atau format fail yang berbeza.

  • Jika anda membaca integer 32-bit daripada fail big-endian pada sistem little-endian tanpa penukaran, nilainya akan salah.
  • Paket rangkaian lazimnya menggunakan big-endian, jadi analisis trafik rangkaian memerlukan kesedaran tentang perkara ini.
  • Banyak sistem terbenam (seperti pemproses ARM) boleh dikonfigurasikan untuk mana-mana susunan, lalu menambahkan kerumitan.

Semakan Endianness

Bayangkan integer 32-bit dengan nilai heksadesimal 0xAABBCCDD disimpan dalam ingatan. Jika sistem itu little-endian, apakah susunan bait dalam ingatan bermula daripada alamat terendah?

Imbas Kembali Perwakilan Data

Tahniah! Dalam pelajaran ini, kami meneroka cara data diwakili dalam binari:

  • Integer: Disimpan sebagai nombor bertanda atau tidak bertanda, dengan saiz menentukan julatnya.
  • Titik apung: Menggunakan piawaian seperti IEEE 754 untuk perpuluhan.
  • Aksara & Rentetan: Dipetakan kepada nombor (ASCII, UTF-8) dan lazimnya diakhiri dengan nol.
  • Endianness: Susunan bait (big-endian atau little-endian) bagi data berbilang bait, yang penting untuk pentafsiran yang betul.

Memahami asas ini penting untuk mentafsir sebarang fail binari atau longgokan ingatan. Seterusnya, kita akan melihat format fail binari yang lazim!

Percuma untuk bermula

Pelajari Assembly dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Perwakilan Data dalam Binari” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Asas Kejuruteraan Balikan & Analisis Binari, termasuk “Perwakilan Data dalam Binari”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Asas Kejuruteraan Balikan & Analisis Binari merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Perwakilan Data dalam Binari”?

Pelajari cara jenis data (integer, nombor apungan dan rentetan) disimpan dalam memori serta fail, termasuk konsep seperti susunan endian. Anda berlatih Asas Kejuruteraan Balikan & Analisis Binari menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Asas Kejuruteraan Balikan & Analisis Binari?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Asas Kejuruteraan Balikan & Analisis Binari di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Perwakilan Data dalam Binari” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Asas Kejuruteraan Balikan & Analisis Binari ini?

Ya. Setiap pelajaran Asas Kejuruteraan Balikan & Analisis Binari menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Tinjauan Seni Bina CPU
  2. Perwakilan Data dalam Binari
  3. Format Fail Binari Biasa
  4. Kedinaan dan Susunan Bait
← Kembali ke Asas Kejuruteraan Balikan & Analisis Binari