Variabel 101: Mengenal Komputer Anda

Sayangnya saya telah melihat bahwa tidak banyak yang ingin belajar program 2018 ini 🙁 tetapi bahkan jika saya hanya membaca saya artículo anterior seseorang dan setelah sedikit waktu dapat mengirimkan komitmen untuk proyek perangkat lunak gratis, saya akan puas dengan pekerjaan saya 🙂

Bagi mereka yang menyukai keamanan, saya berjanji kepada Anda bahwa berikut ini akan menjadi postingan tentang keamanan untuk jadi semua orang senang, jika ada yang ingin mempelajari hal lain (seperti git, administrasi server, atau saya tidak tahu: p), atau untuk mengomentari beberapa topik lain yang tidak dapat dijawab dengan cara yang sederhana di kotak komentar, beri tahu saya dan kita lihat bagaimana kita dapat mengerjakannya 😉

Nah, sekarang jika kita pergi ke barang kita, sebelumnya kita berbicara tentang mengetik, dan ini ada hubungannya dengan cara kita menyimpan variabel kita dalam program, sekarang kita akan meninjau sedikit tentang apa yang terjadi di dalam dan mudah-mudahan itu cukup jelas.

bit

Saya rasa ini adalah topik yang selalu saya sentuh ketika saya menulis tentang pemrograman, itu pasti sesuatu yang membuat saya terpesona dan yang telah membantu saya memahami banyak hal, sekarang saya akan mencoba menjelaskan sedikit bagaimana mereka, bagaimana mereka dibaca, dan untuk apa mereka 🙂

Pikirkan sakelar lampu, ketika sirkuit ditutup, kami memiliki a 0 di layar, ketika kita mengubah posisi sakelar, karena a 1🙂 sederhana bukan?

Sekarang a 0 dan 1 Mereka bisa berarti banyak hal, itu semua tergantung pada kreativitas yang Anda ambil, seandainya saya ingin tahu apakah seseorang akan pergi ke Utara atau Selatan, 1 bisa berarti utara dan 0, sur 🙂 katakanlah saya ingin tahu apakah seseorang laki-laki atau perempuan, 1 itu bisa menjadi seorang pria dan 0, wanita 🙂. Sekarang saya ingin tahu apakah orang ini muda atau tua (> 22), 0 bisa berarti muda dan 1, lebih tinggi. Mari terus membayangkan… Apakah Anda punya hewan peliharaan? 1 Saya akan mengatakan ya, sementara 0 Saya akan mengatakan tidak Sekarang saya ingin Anda membaca baris berikut dengan saya:

1001

Ini adalah cara singkat 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 berbeda dari:

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

Bytes

Sekarang mari melangkah lebih jauh, mari belajar cara membaca byte. Satu byte adalah urutan 8 bit, yang dibaca dari kanan ke kiri dan masing-masing 1 mewakili kekuatan 2 diangkat ke n mana n adalah posisi bit. Karena kedengarannya seperti bahasa Mandarin, mari berikan sedikit contoh 🙂

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

1: bit saat di posisi 0 menunjukkan bahwa kita memiliki 2 berikut dinaikkan menjadi nol atau 2^0. Ini baik yang kita tahu setara dengan 1.

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

0: bit ketiga ... ini seharusnya 2^2, tetapi karena tidak aktif, kami akan membiarkannya menyala 0

1: bit keempat, 2^3 u 8 🙂

0: sama seperti 0

0: lainnya 0

1: sekarang kita masuk 2^6 o 64

dan akhirnya 0 , kita sudah tahu artinya 🙂 sekarang kita akan menambahkan hasil kita dan membandingkannya dengan tabel berikut 🙂 Kita punya 75 jadi mari kita cari di kolom Desimal dan kita akan melihat apa yang muncul di Arang

Hasil gambar untuk tabel ascii

Kami punya satu K!! Selamat, Anda sudah tahu cara membaca dalam biner 🙂 Tapi yang paling cerdas mungkin telah memperhatikan bahwa kami juga memperoleh angka desimal, dan ada batasnya (jika semua nilai adalah 1) Batas itu ditemukan di nomor 255.

Word

Sekarang lebih dari satu akan memberi tahu saya, tetapi bagaimana jika saya membutuhkan angka yang lebih besar dari 255? atau di mana saya dapat menemukan karakter lain seperti bahasa Jepang? Nah jawabannya sederhana, mari kita kumpulkan 2 bytes. Sekarang kita memiliki dua, kemungkinan jumlah kombinasi yang kita miliki adalah 2^16 o 65536 hasil yang mungkin, seperti 0 adalah salah satunya, semaksimal mungkin adalah 65535. Apakah nomor itu membunyikan bel bagi siapa pun? Ingat jumlah maksimum port pada sistem linux? Saya meninggalkan mereka pekerjaan rumah 😉

Kata ganda & kata empat

Untuk yang lebih matematis ada juga format khusus, yaitu kata ganda mengandung, seperti yang mungkin sudah dibayangkan 2 word o 4 bytes (o 32 bits) informasi, sama seperti mengatakan:

11111111111111111111111111111111 untuk 0 a 4 294 967 295

Pada titik ini banyak yang akan bertanya-tanya apa yang terjadi dengan bilangan negatif, yaitu, di suatu tempat harus direnungkan, bukan? Untuk dapat menyimpan bilangan negatif, pengembang prosesor memilih untuk menempati bit pertama di sebelah kiri sebagai nilai tanda. Artinya jika bit pertama adalah 0 kita berbicara tentang bilangan positif, tetapi jika ya 1 kami memiliki negatif. Sekarang lihat mengapa bit-bit itu begitu istimewa, bisa menjadi apa pun yang Anda inginkan 😀

Tapi ini jelas membuat kita kekurangan satu posisi untuk melakukan perkalian! Jadi kami0 a 4 294 967 295 menjadi:

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

Sekarang, banyak dari kita sudah melakukannya 64 bits, dan ini adalah nilai a kata quad, kita bisa memiliki nilai mulai dari 0 a 18 446 744 073 709 551 615. Itu angka yang besar 🙂

Mengapa 8 bit?

Ini adalah sesuatu yang lebih dari satu orang mungkin bertanya-tanya, dan jawabannya ada di perangkat keras. Sejak awal prosesor membutuhkan data untuk dapat melakukan operasi. Data disimpan dalam memori komputer dan setiap kali prosesor membutuhkannya, ia menggunakan bus data untuk mendapatkannya. Pada zaman dahulu, bus-bus ini dapat berkomunikasi maksimal 8 bit per siklus, ini berarti cara pemindahan data yang maksimal dan paling efisien, adalah mengelompokkan 8 bit dan mengirimkannya ke prosesor.

Dengan berjalannya waktu, hingga saat ini prosesor telah mengembangkan kemampuan untuk memindahkan 16 bit, 32 bit dan… 64 bit.

Apa hubungannya dengan mengetik?

Kita sekarang berada di bagian di mana semuanya masuk akal 🙂 Mengetik adalah properti yang digunakan bahasa pemrograman untuk memberi nama ruang memori ini. Semua variabel memiliki pasangannya di salah satu jenis data ini, apa pun namanya. Ini dikenal sebagai tipe data primitifSetiap bahasa yang diketik dengan kuat memiliki konsepsi tentang nilai-nilai ini, dan kuantitas yang mereka wakili. Misalnya di C kami memiliki perpustakaan limits.h yang menunjukkan jumlah maksimum dan minimum nilai primitif.

Mari kita lihat apa yang terjadi jika kita mencoba merusak salah satu nilai:

Sendiri. Christopher Diaz Riveros

Di sebelah kanan kami memiliki nilai file limits.h dan di sebelah kiri kami telah mengambil salah satu dari nilai-nilai ini (unsigned short int) dan kami telah menetapkan angka yang lebih tinggi dari yang sesuai. Akibatnya kompilator memperingatkan kita bahwa kita menyalahgunakan memori karena bentuk biner 66666 tidak bisa muat dalam bentuk biner 65535. Ini membawa kita pada pelajaran prestasi ketika kami memprogram, jika nilai Anda tidak akan tumbuh banyak dari waktu ke waktu, atau jika Anda tidak memerlukan nilai sebesar yang ada dua kali lipat o kata quadMenggunakan jenis yang benar mengurangi jumlah memori yang diminta oleh CPU, yang menyiratkan kecepatan yang lebih tinggi untuk mendapatkan data jika dihitung dengan baik.

Di sisi penerjemah, ini lebih mudah karena konversi implisit. CSaat kita mendefinisikan variabel dalam bahasa seperti javascript atau Python, penerjemah bertanggung jawab untuk memahami jenisnya, dan mengalokasikan ruang memori yang cukup untuk melakukan operasi. Mari kita lihat contoh sederhana 🙂

Sendiri. Christopher Diaz Riveros

Seperti yang Anda lihat, kami tidak perlu menjelaskan kepada juru bahasa python jenis variabel kami, karena ia bertanggung jawab untuk menetapkan jenis dan menyimpannya di memori 🙂

Ketahui variabel Anda

Ini tergantung pada bahasa dan jenis implementasi yang akan Anda gunakan, tetapi langkah pertama untuk dapat memprogram adalah mempelajari variabel yang dapat Anda gunakan 🙂 Setelah Anda memahami variabel, Anda akan dapat menggunakannya efisien dan logis untuk menyimpan informasi (disediakan oleh pengguna atau oleh sistem). Ini adalah langkah pertama dalam tangga pemrograman dan semoga setelah membaca artikel ini, Anda akan memiliki pemahaman yang lebih baik tentang cara kerja komputer Anda dan cara menyimpan informasi. Itu akan bersama saya sampai artikel berikutnya, ingatlah untuk meninggalkan komentar Anda untuk melihat apakah Anda perlu memperkuat atau mengomentari poin tertentu. Bersulang


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   Luis dijo

    Ditulis dengan baik, ringkas dan jelas, sekaligus menarik untuk semua audiens. Pekerjaan yang baik.

    1.    ChrisADR dijo

      Terima kasih banyak salam

  2.   Yohanes Yesus dijo

    Penjelasan yang bagus. Anda adalah mesin.

    1.    ChrisADR dijo

      Terima kasih

  3.   ruben dijo

    Terima kasih dijelaskan dengan sangat baik

    1.    ChrisADR dijo

      Terima kasih telah membacanya sepenuhnya 🙂

  4.   Diego dijo

    Luar biasa, terima kasih atas masukannya. Dan memanfaatkan masalah biner, ada kemungkinan Anda bisa memberi kami kelas IP, subnet, dll. Saya mengerti bahwa ini bukan masalah pemrograman, tetapi penjelasan yang baik tentang masalah itu selalu tertunda.
    Sekali lagi, terima kasih atas penjelasan Anda

    1.    ChrisADR dijo

      Halo Diego, itu bisa dilakukan 🙂 untuk mengatakan yang sebenarnya Saya juga belum membahas masalah ini, tetapi tidak ada cara yang lebih baik untuk menyelidiki selain dengan mencari sesuatu untuk dibagikan tentang hal itu di artikel leave Kami akan meninggalkannya untuk daftar karena postingan selanjutnya sudah memiliki subjek dan akan membahas tentang hardening. Salam 🙂

  5.   Petrus dijo

    Anda adalah guru yang luar biasa, dan sangat murah hati untuk mengajarkan apa yang Anda ketahui. Selamat dan terima kasih.

    1.    ChrisADR dijo

      Terima kasih banyak Pedro 🙂 Saya masih mencari tempat untuk mengajar, sayangnya di Peru sulit ketika Anda hanya memiliki gelar profesional teknis, jadi sekarang saya melihat kemungkinan untuk melanjutkan studi universitas saya di sini atau di mana saya bisa atau bahkan melamar gelar master di orang asing, siapa tahu, mungkin sebentar lagi hal seperti itu bisa diberikan 🙂 tapi yang pasti mengajar adalah sesuatu yang membuat hariku 🙂 Salam

  6.   sesuatu dijo

    Saya belum membaca penjelasan subjek yang lebih baik, contoh pertama brilian

    meskipun saya belum pernah mendengar kata itu (seperti variabel 16-bit), kata ganda, atau kata quad

    Terlepas dari "sudah memprogram", postingannya menarik. Jika ada masalah, posting akan menggunakan C (batas.h) sebagai contoh ukuran variabel, C memiliki spesifikasi paling spesifik yang ada

    1.    ChrisADR dijo

      Halo sesuatu 🙂 terima kasih banyak, saya datang dengan contoh di jalan 😛 karena data pasti diketahui bagi mereka yang telah membaca sedikit Majelis, dan itulah yang dipahami prosesor 🙂 hahaha tentu C tidak terlalu spesifik, tapi saya rasa ini karena fakta bahwa portabilitas dan arsitektur berbeda yang didukungnya sangat bervariasi sehingga C harus mengakomodasi setiap jenis prosesor agar benar-benar portabel 🙂
      Salam dan terima kasih telah berbagi.

  7.   Sergio dijo

    Unnn alangkah menariknya jika rangkaian tutorial ini didasarkan pada rust, menurut saya ini adalah salah satu bahasa paling menarik yang sedang dikembangkan saat ini.
    Saya mendukungnya, tetapi saya menyadari bahwa itu adalah bahasa yang sulit, tetapi dengan masa depan yang cerah ...
    Saya menantikan artikel Anda berikutnya, mereka sangat menarik.
    Salam.

    1.    ChrisADR dijo

      Halo Sergio, pasti akan menarik, saya telah mendengar bahwa GNOME berencana untuk mengimplementasikan Rust dalam rangkaian programnya, saya belum melihat cakupan penuh yang mereka inginkan, tetapi migrasi akan datang.
      Mengenai bahasa, saya pribadi masih mempelajari C, saya ingin dapat mulai mengembangkan kernel dalam beberapa bulan ke depan, dan saya lebih suka mempelajari beberapa bahasa secara mendalam sebelum saya mulai meninjau yang baru, tetapi saya bisa pasti mencari sesuatu yang menarik dan melakukan beberapa contoh di Rust, karena dokumentasinya terlihat cukup bagus.
      Salam dan terima kasih sudah berbagi 🙂

  8.   David dijo

    Penjelasan yang sangat bagus, baik di artikel ini maupun di artikel sebelumnya. Saya harap Anda melanjutkan dengan tema yang menurut saya sangat menarik ini.

    1.    ChrisADR dijo

      Halo David, saya juga berharap untuk terus menulis dan terutama memotivasi orang untuk berpartisipasi dengan perangkat lunak gratis, ada begitu banyak proyek dan kebutuhan sekarang sehingga memiliki beberapa tangan ekstra untuk dikembangkan akan sangat bagus 🙂
      salam

  9.   Pasar dijo

    Bisakah Anda membuat posting tentang mesin Turing?

    1.    ChrisADR dijo

      Hello Mart 🙂 Saya rasa dalam beberapa komentar kami telah menyentuhnya sebelumnya, bukan? Saya yakin saya bisa mengumpulkan sesuatu yang menarik pada subjek 🙂 mari kita lihat apa yang bisa keluar. Salam dan terimakasih sudah membaca semua artikel saya, dari hari pertama sampai hari ini saya selalu melihat kalian cukup tertarik 🙂

  10.   ALLAN LARA dijo

    Wow, terima kasih banyak penjelasan yang bagus.

    salam

    1.    ChrisADR dijo

      Terima kasih banyak Allan 🙂 salam

  11.   ramon hidalgo dijo

    Saya membaca posting Anda sebelumnya! Terima kasih banyak atas penjelasannya, meskipun saya pikir saya tidak akan pernah selesai memahami kata tersebut.

    1.    ChrisADR dijo

      Hai Ramon 🙂 terima kasih banyak telah membaca keduanya. Jika ada gunanya, «kata» adalah evolusi dari sebuah byte, itu seperti prosesor, sebelum ada 8-bit, setelah 16-bit, dll ... ini karena setiap kali kita membutuhkan lebih banyak ruang untuk proses dan kecepatan atau kekuatan yang lebih baik ... 'kata' lahir karena ruang 'byte' pendek, dan sama dengan kata 'ganda' dan 'quad' 🙂 itu adalah evolusi alami yang membuat kita menambah kekuatan dan ruang untuk terus berkembang 🙂

      salam

  12.   anonim dijo

    Tahun 2018 ini saya belajar program ya atau ya terima kasih

    1.    ChrisADR dijo

      Saya senang 🙂 lakukan yang terbaik !! Bersulang

  13.   Guillermo dijo

    Terima kasih banyak, pertahankan. Saya sudah tahu bagaimana memprogram tetapi saya menunggu ajaran Anda, bahwa pemrograman otodidak saya penuh dengan praktik buruk.

    1.    ChrisADR dijo

      Terima kasih Guillermo 🙂 Baiklah semoga kalian menemukan hal-hal menarik juga pada postingan berikut 🙂 Salam

  14.   Edgar dijo

    Penjelasan sederhana selalu yang terbaik .. bagus ..
    Saya akan mengusulkan git ... bagi pemrogram, hal ini mendasar ketika Anda ingin bekerja sebagai tim dan menata pekerjaan Anda .. versinya ..

    1.    ChrisADR dijo

      Benar banget Edgar, saya akan coba posting konten tentangnya, walaupun cukup sulit untuk mengatakan sesuatu yang baru karena dokumentasi gitnya sudah melimpah dan beberapa hal sudah diterjemahkan ke beberapa bahasa. Saya akan melihat apa yang bisa saya lakukan, salam dan terima kasih telah berbagi

  15.   Tiriri dijo

    Halo, apakah angka dari 0 hingga 18 446 744 073 709 551 sesuai dengan nilai desimal 615-bit atau apakah itu mengacu pada nilai lain? Nah, menghitung pangkat 64 ^ 2, hasil yang saya dapatkan adalah: 64 18 446 744.

    1.    ChrisADR dijo

      Hai Tiririri, saya rasa Anda mengalami masalah pembulatan, Anda dapat mencoba menggunakan perintah bc? adalah bahasa pemrograman yang dirancang seakurat mungkin, hanya perlu melakukannya sekali di dalamnya 2^64, mungkin itu akan menyelesaikannya 🙂 beri tahu saya bagaimana hasilnya, salam

      . Nilai sebenarnya adalah 18 446 744 073 709, tetapi kita mengurangkan 551 karena 616 dihitung sebagai nilai yang mungkin 🙂

      1.    Tiriri dijo

        Terima kasih, saya menghitungnya dengan kalkulator daya yang saya temukan di internet (https://es.calcuworld.com/calculadoras-matematicas/potencias/) dan itulah hasil yang saya berikan.
        Dan ya, saya sudah mencoba perintah bc, dan itu secara efektif memberi saya nilai yang Anda tulis.

  16.   Tiriri dijo

    Halo sekali lagi, gambar di mana Anda merujuk ke pustaka limit.h sangat kecil dan tidak dapat dibaca (setidaknya saya tidak dapat membacanya, karena saya melihat semua orang melakukannya, tampaknya), dan karena saya tidak memahaminya Saya tidak lagi melanjutkan membaca. Saya tidak tahu apakah Anda bisa mengubahnya, saya harap saya tidak mengganggu Anda dengan itu.

    1.    ChrisADR dijo

      Anda dapat mencoba versi mobile, yang terlihat sedikit lebih jelas, ini adalah tema wordpress: / di sisi lain, semua header C dapat ditemukan di / usr / include /, dalam hal ini Anda dapat memilih untuk membacanya secara langsung jika Anda lebih mudah 🙂 Saya akan mencoba mengunggah gambar yang lebih besar untuk melihat apakah itu membantu 🙂

      1.    Tiriri dijo

        Terima kasih, saya rasa saya harus bersabar dengan ini, heh heh.

  17.   katekyo dijo

    Terima kasih untuk artikelnya karena sekarang saya mengerti sedikit lebih baik variabel dan jangkauan representasi suatu bahasa dan tapi sekarang saya pikir saya harus mulai menggunakan perpustakaan "stdint.h" karena mereka merekomendasikannya untuk digunakan saat pemrograman di c sejak saya punya telah diajarkan di sekolah tua karena ingatan sangat berharga dan seseorang harus berhati-hati dengan apa yang digunakan

    1.    ChrisADR dijo

      Tidak ada alasan untuk Katekyo, lebih baik menggunakan pustaka standar, tetapi saya dapat meyakinkan Anda bahwa lebih baik mengetahui apa yang membedakan uint_least8_t dari uint_fast8_t dan itu dicapai dengan mengetahui tipe data primitif, yang menjadi tujuannya dari kiriman 🙂 Terima kasih banyak atas komentarnya dan telah membaca artikelnya, salam kenal

  18.   pemenang dijo

    : Atau penjelasan ahli! Saya tahu sebagian dari konsepnya tetapi saya mendapatkan banyak pengetahuan baru dari posting ini

    1.    ChrisADR dijo

      Terima kasih banyak Victor 🙂 betapa bagusnya artikel itu bisa membantu, salam

  19.   Guille dijo

    Saya sangat menyukai Python untuk membuat pemrograman lebih mudah, saya melihat kursus di http://zetcode.com/gui/pyqt4/ Saya menyukai tetris terakhir tentang: http://zetcode.com/gui/pyqt4/thetetrisgame/
    Saya memperbaiki tetris ini selama musim panas untuk menempatkan poin, multipemain, dan musik, sedikit demi sedikit, tetapi sangat menghibur.

    1.    ChrisADR dijo

      Halo Guille, tentu sangat menghibur melihat perangkat lunak yang sedang Anda kerjakan tumbuh sedikit demi sedikit 🙂 ini adalah pengalaman yang tiada tara, dan terlebih lagi ketika seseorang menemukan apa yang Anda kembangkan berguna, yaitu dari dunia lain 😀 terima kasih banyak untuk berbagi 🙂

      1.    Guille dijo

        Yang saya lakukan telah saya unggah (30 MB untuk musik) ke http://guillermo.molleda.com/Tetris9.7z
        Anda harus mengonfigurasi kecepatan awal yang berbeda untuk setiap pemain atau jika Anda memulai kembali poin setelah permainan baru,…, dan ada tiga pemain untuk dua putri saya bermain dengan saya. Itu bahkan membuat ketagihan.