Rumah >pembangunan bahagian belakang >C++ >Mewakili dan Memanipulasi Maklumat dalam komputer moden - Bahagian 1

Mewakili dan Memanipulasi Maklumat dalam komputer moden - Bahagian 1

Patricia Arquette
Patricia Arquetteasal
2024-10-29 10:45:29867semak imbas

Seperti kebanyakan anda mungkin sudah tahu komputer hanya boleh memahami, menyimpan dan memproses sedikit sahaja(0 dan 1).

Tetapi kenapa?
Ternyata, isyarat dua nilai dengan mudah boleh diwakili, disimpan dan dihantar dengan mudah dan lebih dipercayai daripada perwakilan nombor asas 10 — contohnya, sebagai kehadiran atau ketiadaan lubang dalam kad yang ditebuk, sebagai tinggi atau rendah voltan pada wayar, atau sebagai domain magnet yang berorientasikan arah jam atau lawan jam, dsb.

Selain itu, bit tunggal biasanya tidak begitu membantu dalam mewakili apa-apa yang bermakna dalam komputer tetapi setelah kami menggabungkan urutan bit, kami boleh mewakili mana-mana set terhingga. sebagai contoh, kita boleh mengekod bit ke dalam nombor negatif/bukan negatif dan terapung dan juga boleh mengekod huruf dan simbol dalam dokumen. Inilah sebabnya (atau mungkin tidak) kami menggunakan 8bits atau bait sebagai unit ingatan terkecil yang boleh dialamatkan. Dalam tatatanda binari, nilainya berjulat dari 00000000 hingga 11111111. Apabila dilihat sebagai integer perpuluhan, nilainya berjulat dari 0 hingga 255 dan dalam heksadesimal ia berjulat dari 00 hingga FF. Kami biasanya menulis corak bit sebagai perenambelasan(0 - 9, A - F) kerana mudah untuk kami menukar kepada/dari tatatanda binari.

Dalam bahasa pengaturcaraan C, pemalar berangka bermula dengan 0x atau 0X ditafsirkan sebagai dalam perenambelasan. Aksara 'A' hingga 'F' boleh ditulis sama ada dalam huruf besar - atau huruf kecil. Sebagai contoh, kita boleh menulis nombor FA1D37B sebagai 0xFA1D37B, sebagai 0xfa1d37b, atau mencampurkan huruf besar - dan kecil (cth., 0xFa1D37b).

Baiklah mari kita tutup satu perkara lagi,

Saiz data

Beberapa istilah CS di hadapan!!!

  • Memori maya - Susunan bait berkonsepkan yang besar dalam ingatan (terdapat lebih banyak lagi tetapi ia akan datang kemudian dalam siri)

  • Alamat Memori - Nombor unik yang digunakan untuk mengenal pasti bait memori.

  • Ruang memori maya - Set semua alamat memori yang mungkin (lebih banyak akan datang kemudian).

  • Saiz perkataan - Saiz nominal data penunjuk atau saiz maksimum alamat memori maya.

Komputer hari ini adalah sama ada bersaiz perkataan 32-bit atau 64-bit yang bermaksud program boleh mempunyai akses julat dari 0 hingga 2^32 - 1(seluar 32-bit) dan 0 hingga 2^64 - 1(seluar daripada 64-bit) alamat maya. Kebanyakan program yang disusun dalam mesin 64-bit boleh dijalankan pada mesin 32-bit juga tetapi sebaliknya tidak benar.

Komputer dan penyusun menyokong berbilang format data menggunakan cara berbeza untuk mengekod data, seperti integer dan titik terapung, serta panjang yang berbeza. Sebagai contoh, banyak mesin mempunyai arahan untuk memanipulasi bait tunggal, serta integer yang diwakili sebagai kuantiti 2-, 4-, dan 8-bait. Mereka juga menyokong nombor titik terapung yang diwakili sebagai kuantiti 4- dan 8-bait. Bilangan tepat bait untuk sesetengah jenis data bergantung pada cara atur cara disusun. Saya menunjukkan saiz untuk program 32-bit dan 64-bit biasa di bawah:

Representing and Manipulating Information in modern computer - Part 1

Untuk mengelakkan kekeliruan antara bitness mesin dan tetapan pengkompil, ISO C99 memperkenalkan beberapa jenis data di mana saiz data ditetapkan tanpa mengira tetapan pengkompil atau mesin. Seperti yang anda lihat dalam tangkapan skrin di atas, int32_t dan int64_t adalah antaranya. Menggunakan jenis integer bersaiz tetap ialah cara terbaik untuk pengaturcara mempunyai kawalan rapat ke atas perwakilan data.

Sebelum menandatangani - Kita harus cuba menulis kod yang boleh mudah alih ke mesin dan penyusun yang berbeza. Satu aspek mudah alih adalah untuk menjadikan program tidak sensitif kepada saiz tepat jenis data yang berbeza. Dengan peralihan kepada mesin 64-bit, banyak kebergantungan saiz perkataan tersembunyi telah timbul sebagai pepijat dalam memindahkan program 32-bit ke mesin baharu. Sebagai contoh, ramai pengaturcara dari segi sejarah menganggap bahawa objek yang diisytiharkan sebagai jenis int boleh digunakan untuk menyimpan penunjuk. Ini berfungsi dengan baik untuk kebanyakan program 32-bit, tetapi ia membawa kepada masalah untuk program 64-bit kerana seperti yang dibincangkan di atas saiz perkataan atau saiz penunjuk mesin 32-bit dan 64-bit akan berbeza.

Baiklah. itu sahaja untuk hari ini. Terima kasih.

Ruj: Sistem Komputer: Perspektif Pengaturcara.

Atas ialah kandungan terperinci Mewakili dan Memanipulasi Maklumat dalam komputer moden - Bahagian 1. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn