Pemboleh ubah 101: Mengetahui Komputer Anda

Malangnya saya telah melihat bahawa tidak ramai yang ingin belajar memprogram pada tahun 2018  tetapi walaupun saya hanya membaca artikel sebelumnya seseorang dan selepas sedikit masa dia dapat menghantar komitmen kepada beberapa projek perisian percuma, saya akan berpuas hati dengan kerja saya 

Untuk pencinta keselamatan, saya berjanji bahawa yang seterusnya akan menjadi siaran tentang keselamatan  jadi semua orang gembira, jika sesiapa ingin mempelajari sesuatu yang lain (seperti git, pentadbiran pelayan, atau apa yang saya tahu :p ), atau mengulas pada topik lain yang tidak boleh dijawab dengan mudah di dalam kotak komen, beritahu saya dan kita akan lihat bagaimana kita boleh menyelesaikannya 

Nah, jika kita melihat perkara kita, sebelumnya kita bercakap tentang menaip, dan ini berkaitan dengan cara kita menyimpan pemboleh ubah kita dalam program, sekarang kita akan mengkaji sedikit perkara yang berlaku di dalam dan mudah-mudahan boleh cukup jelas.

Bit

Saya rasa ini adalah topik yang selalu saya sentuh apabila saya menulis tentang pengaturcaraan, ia pastinya sesuatu yang menarik perhatian saya dan telah membantu saya memahami banyak perkara, sekarang saya akan cuba menerangkan serba sedikit tentang apa itu, bagaimana ia dibaca , dan untuk apa mereka 

Fikirkan suis lampu, apabila litar ditutup, kita mempunyai 0 di layar, ketika kita mengubah posisi suis, kerana a 1 Mudah bukan?

Sekarang a 0 dan 1 Mereka boleh bermaksud banyak perkara, semuanya bergantung pada kreativiti yang anda gunakan, andaikan saya ingin tahu sama ada seseorang pergi ke Utara atau Selatan, 1 boleh bermaksud utara dan 0, sur  katakan saya ingin tahu sama ada seseorang itu lelaki atau perempuan, 1 ia boleh menjadi lelaki dan 0, wanita  . Sekarang saya ingin tahu sama ada orang ini muda atau tua (>22), 0 boleh bermaksud muda dan 1, lebih tinggi. Mari terus membayangkan ... Adakah anda mempunyai haiwan kesayangan? 1 Saya akan mengatakan ya, sementara 0 Saya akan katakan tidak Sekarang saya mahu anda membaca baris berikut dengan saya:

1001

Ini adalah cara ringkas untuk mengatakan ...

Una jóven mujer de no más de 22 años se dirige al norte acompañada de su mascota.

yang sangat berbeza dengan:

0110 o Un hombre con más de 22 años de edad se dirige solo hacia el sur.

Bytes

Sekarang mari kita melangkah lebih jauh, mari belajar bagaimana membaca bait. Byte adalah urutan 8 bit, yang dibaca dari kanan ke kiri dan masing-masing 1 mewakili kekuatan 2 dinaikkan ke n mana n ialah kedudukan bit. Memandangkan ia berbunyi Cina, mari kita berikan contoh kecil 

01001011 Kami mempunyai bait ini, sekarang kami akan pergi dari kanan ke kiri (<-) Saya akan meletakkannya dari atas ke bawah untuk dapat menulis maksudnya:

1: bit ketika berada dalam kedudukan 0 menunjukkan bahawa kita mempunyai 2 berikut dinaikkan menjadi sifar atau 2^0. Perigi ini yang kita tahu setara dengan 1.

1: bit kedua, sekarang kedudukan 12^1 yang sama dengan mengatakan 2

0: bit ketiga ... ini sepatutnya 2^2, tetapi kerana ia tidak menyala, mari kita biarkan 0

1: bit keempat, 2^3 u 8 

0: sama seperti 0

0: lain 0

1: sekarang kita masuk 2^6 o 64

dan akhirnya 0 , yang kita sudah tahu maksudnya  kini kita akan menambah keputusan kita dan membandingkannya dengan jadual berikut  Kami mempunyai 75 jadi mari kita mencarinya di lajur Decimal dan kita akan melihat apa yang muncul di kereta

Hasil gambar untuk jadual ascii

Kami mempunyai satu K!! Tahniah, anda kini tahu cara membaca dalam binari  Tetapi yang paling cerdik akan dapat melihat bahawa kami juga telah memperoleh nombor perpuluhan, dan ini mempunyai had (apabila semua nilai 1) Had itu terdapat dalam nombor 255.

Perkataan

Sekarang lebih daripada satu akan memberitahu saya, tetapi bagaimana jika saya memerlukan nombor yang lebih besar daripada 255? atau di mana saya boleh mencari watak lain seperti orang Jepun? Baiklah jawapannya mudah, mari kita bersama-sama 2 bytes. Sekarang kita mempunyai dua, kemungkinan jumlah kombinasi yang kita ada adalah 2^16 o 65536 kemungkinan hasil, seperti 0 adalah salah satu daripadanya, yang maksimum mungkin 65535. Adakah nombor itu terdengar biasa kepada sesiapa sahaja? Adakah anda masih ingat bilangan maksimum port pada sistem Linux? Saya akan tinggalkan anda kerja rumah 

Kata ganda & perkataan quad

Untuk lebih matematik terdapat juga format khusus, yang kata ganda mengandungi, seperti yang telah dibayangkan oleh banyak orang 2 word o 4 bytes (o 32 bitsmaklumat, sama seperti mengatakan:

11111111111111111111111111111111 kepada 0 a 4 294 967 295

Pada ketika ini banyak yang akan bertanya-tanya apa yang terjadi pada angka negatif, iaitu, mereka mesti dipertimbangkan di suatu tempat, bukan? Untuk dapat menyimpan nombor negatif, pemaju pemproses memilih untuk menggunakan bit pertama di sebelah kiri sebagai nilai tanda. Ini bermaksud bahawa jika bit pertama adalah 0 kita bercakap mengenai nombor positif, tetapi jika betul 1 kita ada negatif. Kini anda nampak mengapa bit begitu istimewa, ia boleh menjadi apa sahaja yang anda mahukan 

Tetapi ini jelas menjadikan kita satu kedudukan yang kurang untuk melakukan pendaraban! Jadi kami0 a 4 294 967 295 menjadi:

-2,147,483,648 a +2,147,483,647

Sekarang, banyak daripada kita sudah mempunyai 64 bits, dan ini adalah nilai a perkataan quad, kita boleh mempunyai nilai mulai dari 0 a 18 446 744 073 709 551 615. Itu adalah angka yang besar 

Mengapa 8 bit?

Ini adalah sesuatu yang lebih dari satu orang akan tertanya-tanya, dan jawapannya ada di perkakasan. Sejak awal, pemproses memerlukan data untuk dapat melakukan operasi. Data disimpan dalam memori komputer dan setiap kali pemproses memerlukannya, ia menggunakan bas data untuk mendapatkannya. Pada zaman kuno, bas ini dapat berkomunikasi maksimum 8 bit per kitaran, ini bermaksud cara memindahkan data maksimum dan paling efisien, adalah mengelompokkan 8 bit dan mengirimkannya ke pemproses.

Dengan berlalunya masa, hingga hari ini, pemproses telah mengembangkan kemampuan untuk memindahkan 16 bit, 32 bit dan… 64 bit.

Apa kaitannya dengan menaip?

Kami telah pun mencapai bahagian di mana segala-galanya masuk akal  Menaip ialah sifat yang digunakan oleh bahasa pengaturcaraan untuk menamakan ruang memori ini. Semua pembolehubah mempunyai rakan sejawatannya dalam salah satu jenis data ini, tidak kira bagaimana ia dipanggil. Ini dikenali sebagai jenis data primitifSetiap bahasa yang ditaip kuat mempunyai konsep mengenai nilai-nilai ini, dan kuantiti yang mereka wakili. Contohnya di C kita mempunyai perpustakaan limits.h yang menunjukkan jumlah maksimum dan minimum nilai primitif kepada kita.

Mari lihat apa yang berlaku jika kita cuba memecahkan salah satu nilai:

Milik. Christopher Diaz Riveros

Di sebelah kanan kita mempunyai nilai fail limits.h dan di sebelah kiri kita telah mengambil salah satu nilai ini (unsigned short int) dan kami telah memberikan nombor yang lebih tinggi daripada yang sesuai. Akibatnya penyusun memberi amaran bahawa kita menyalahgunakan memori kerana bentuk binari 66666 tidak boleh muat dalam bentuk perduaan 65535. Ini membawa kita ke pelajaran di prestasi semasa kami memprogram, jika nilai anda tidak akan bertambah dari masa ke masa, atau jika anda tidak memerlukan nilai sebesar dua kali ganda o perkataan quadMenggunakan jenis yang betul akan mengurangkan jumlah memori yang diminta oleh CPU, yang menunjukkan kecepatan memperoleh data yang lebih besar jika dihitung dengan baik.

Di sisi jurubahasa ini lebih mudah kerana penukaran tersirat. CApabila kita mentakrifkan pembolehubah dalam bahasa seperti Javascript atau Python, penterjemah bertanggungjawab untuk memahami jenisnya dan memperuntukkan ruang memori yang mencukupi untuk melaksanakan operasi. Mari kita lihat contoh mudah 

Milik. Christopher Diaz Riveros

Seperti yang anda lihat, kami tidak perlu menerangkan jenis pembolehubah kami kepada penterjemah python, kerana ia sendiri bertanggungjawab untuk menetapkan jenis dan menyimpannya dalam ingatan 

Ketahui pemboleh ubah anda

Ini bergantung pada bahasa dan jenis pelaksanaan yang anda akan gunakan, tetapi langkah pertama untuk dapat memprogramkan ialah mempelajari pembolehubah yang boleh anda gunakan  Sebaik sahaja anda memahami pembolehubah, anda akan berada dalam kedudukan untuk dapat menggunakannya dengan cekap dan logik untuk menyimpan maklumat (disediakan oleh pengguna atau oleh sistem). Ini adalah langkah pertama pada tangga pengaturcaraan dan diharapkan, selepas membaca artikel ini, anda akan mempunyai pemahaman yang lebih baik tentang cara komputer anda berfungsi dan cara ia menyimpan maklumat. Dengan saya ia akan menjadi sehingga artikel seterusnya, ingat untuk meninggalkan komen anda untuk mengetahui sama ada mana-mana perkara tertentu perlu diperkukuh atau diulas. salam