Variabel 101: Nyaho Komputer Anjeun

Duka tah kuring atos ningali yén henteu seueur anu hoyong diajar program taun 2018 🙁 tapi sanaos kuring ngan ukur maca artikel saméméhna hiji jalma sareng saatos sakedik waktos tiasa ngirim komitmen kana proyék perangkat lunak gratis, abdi bakal wareg kana padamelan kuring 🙂

Pikeun anu resep ka kaamanan, kuring janji yén ieu di handap bakal janten tulisan ngeunaan todos kaamanan sahingga sadayana bagja, upami aya anu hoyong diajar anu sanés (sapertos git, administrasi server, atanapi kuring henteu terang: p), atanapi mairan sababaraha topik anu sanés anu teu tiasa diwaler ku cara saderhana dina kotak koméntar, hayu atuh terang sareng kami ningali kumaha carana tiasa dianggo 😉

Nya, ayeuna upami urang kana hal anu urang, sateuacanna urang nyarioskeun tentang ngetik, sareng ieu aya hubunganana sareng cara nyimpen variabel urang dina program, ayeuna urang bakal marios sakedik naon anu kajantenan di jero sareng mudah-mudahan éta tiasa cukup jelas.

bit

Saur ieu mangrupikeun topik anu kuring teraskeun nalika kuring nyerat ngeunaan program, éta pasti hal anu narik kuring sareng anu parantos ngabantosan kuring ngartos seueur hal, ayeuna kuring bakal nyobian ngajelaskeun sakedik kumaha kaayaan aranjeunna, kumaha cara maca, sareng naon pikeun

Pikirkeun saklar lampu, nalika sirkuitna ditutup, urang gaduh 0 dina layar, nalika urang ngarobih posisi saklar, sabab a 1🙂 saderhana henteu?

Ayeuna a 0 jeung 1 Éta tiasa hartosna seueur hal, éta sadayana gumantung kana kreativitas anu anjeun candak, sigana kuring hoyong terang upami aya anu badé Kalér atanapi Kidul, 1 tiasa hartosna kalér na 0, sur 🙂 hayu atuh urang hoyong terang naha batur lalaki atanapi awéwé, 1 éta tiasa janten lalaki na 0, awéwé 🙂. Ayeuna kuring hoyong terang naha jalma ieu ngora atanapi sepuh (> 22), 0 tiasa hartosna anom na 1, langkung luhur. Hayu urang tetep ngabayangkeun ... Naha anjeun ngagaduhan piaraan? 1 Abdi nyarios leres, bari 0 Abdi nyarios henteu Ayeuna kuring hoyong anjeun maca garis ieu sareng kuring:

1001

Ieu cara pondok pikeun nyarios ...

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

anu bénten pisan sareng:

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

bait

Ayeuna hayu urang ngaléngkah deui, hayu urang diajar maca bait. Bait nyaéta sekuen 8 bit, anu dibaca ti katuhu ka kénca sareng masing-masing 1 ngagambarkeun kakuatan tina 2 diangkat ka n di mana n nyaéta posisi bit. Sapertosna siga Cina, hayu urang masihan conto sakedik 🙂

01001011 Kami gaduh bait ieu, ayeuna urang badé angkat ti katuhu ka kénca (<-) Kuring badé nempatkeun aranjeunna ti luhur ka handap pikeun tiasa nyerat hartosna:

1: bit nalika dina posisi 0 nunjukkeun yén urang gaduh 2 kieu diangkat kana nol atanapi 2^0. Sumur ieu kami terang sami sareng 1.

1: anu kadua, ayeuna jabatanana 12^1 anu sami sareng nyarios 2

0: bit katilu ... ieu kedahna 2^2, tapi kusabab éta henteu hurung, urang badé ngantunkeunana 0

1: bit kaopat, 2^3 u 8 🙂

0: sami sareng 0

0: lain 0

1: ayeuna urang di 2^6 o 64

sarta pamustunganana 0 , urang parantos terang naon hartosna 🙂 ayeuna urang badé nambihan hasil sareng ngabandingkeunana sareng tabel ieu 🙂 Kami gaduh 75 janten hayu urang milarian dina kolom decimal sareng urang bakal ningali naon anu muncul dina Char

Hasil gambar pikeun méja Alexa

Kami gaduh hiji K!! Wilujeng, anjeun parantos terang cara maca dina binér 🙂 Tapi anu paling lega panginten anjeunna sadar yén kami ogé parantos kéngingkeun nomer desimal, sareng éta ngagaduhan wates (nalika sadaya nilai aya 1) Wates éta aya dina jumlah 255.

kecap

Ayeuna langkung ti hiji bakal nyaritakeun kuring, tapi kumaha upami kuring peryogi nomer anu langkung ageung tibatan 255? atanapi dimana kuring tiasa mendakan karakter sanés sapertos Jepang? Nya jawaban na saderhana, hayu urang babarengan 2 bytes. Ayeuna urang gaduh dua, kamungkinan jumlah kombinasi anu dipibanda nyaéta 2^16 o 65536 kamungkinan hasil, sapertos 0 mangrupikeun salah sahiji, maksimal mungkin 65535. Naha nomer éta ngirining bel saha? Émut jumlah maksimum palabuhan dina sistem linux? Abdi ngantunkeun aranjeunna padamelan 😉

Kecap ganda & kecap quad

Kanggo langkung matématika ogé aya format khusus, kecap ganda ngandung, sakumaha seueur anu parantos ngabayangkeun 2 word o 4 bytes (o 32 bits) inpormasi, sami sareng nyarios:

11111111111111111111111111111111 atawa 0 a 4 294 967 295

Dina titik ieu seueur anu bakal heran kana naon anu kajadian sareng angka négatip, nyaéta, dimana waé aranjeunna kedah dibayangkeun, leres? Supados tiasa nyimpen angka négatip, pamekar prosesor milih nempatan bit kahiji di kénca salaku nilai tanda. Ieu ngandung harti yén lamun bit kahiji nyaéta 0 urang nyarioskeun angka positip, tapi upami éta 1 urang gaduh négatip. Ayeuna tingali naha bit na istimewa, éta tiasa naon anu anjeun pikahoyong 😀

Tapi ieu écés nyéépkeun urang ku hiji posisi anu kirang pikeun ngalaksanakeun gandakan! Janten urang0 a 4 294 967 295 janten:

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

Ayeuna, seueur urang parantos gaduh 64 bits, sareng ieu nilai a kecap quad, urang tiasa ngagaduhan nilai-nilai mimitian ti 0 a 18 446 744 073 709 551 615. Éta mangrupikeun nomer anu 🙂

Naha 8 sakedik?

Ieu mangrupikeun langkung ti hiji anu bakal heran, sareng jawaban na aya dina pakakas hardware. Ti mimiti, prosesor peryogi data pikeun tiasa ngalakukeun operasi. Data disimpen dina mémori komputer sareng unggal prosésor meryogikeunana, éta nganggo beus data pikeun kéngingkeunana. Di jaman kuno, beus ieu tiasa komunikasi maksimal 8 bit per siklus, ieu hartosna cara mindahkeun data anu maksimal sareng pang éfisiénna nyaéta mengelompokkeun 8 bit sareng ngirimna ka prosesor.

Ku jalanna waktos, dugi ka ayeuna, prosesor parantos ngembangkeun kamampuan mindahkeun 16 bit, 32 bit sareng… 64 bit.

Naon hubunganana sareng ngetik?

Kami ayeuna aya di bagian anu sadayana masuk akal 🙂 Ngetik mangrupikeun sipat anu dianggo basa pamrograman pikeun namina ruang mémori ieu. Sadaya variabel gaduh tara na dina salah sahiji jinis data ieu, henteu paduli naon anu disebatna. Ieu katelah jenis data primitifMasing-masing basa anu diketik kuat gaduh konsepsi ngeunaan nilai-nilai ieu, sareng jumlah anu aranjeunna ngagambarkeun. Misalna di C urang gaduh perpustakaan limits.h anu nunjukkeun urang jumlah maksimum sareng minimum nilai primitif.

Hayu urang tingali naon anu lumangsung upami urang nyobian ngarobih salah sahiji nilaina:

Milikna. Christopher Diaz Riveros

Di belah katuhu urang gaduh nilai file limits.h sareng di kénca kami nyandak salah sahiji nilai ieu (unsigned short int) sareng kami parantos masihan nomer langkung luhur tibatan anu pakait. Hasilna panyusun ngingetkeun urang yén urang nyalahgunakeun mémori kusabab bentuk binér tina 66666 moal pas dina bentuk binér tina 65535. Ieu ngakibatkeun urang kana pelajaran di kinerja nalika urang program, upami nilai anjeun henteu bakal tumuh seueur ku langkungna waktos, atanapi upami anjeun henteu meryogikeun nilai sakumaha ageung tina ganda o kecap quadNgagunakeun jinis anu leres ngirangan jumlah mémori anu dipénta ku CPU, anu nyababkeun kagancangan pamundut data langkung luhur upami éta leres diitung.

Di sisi juru éta langkung gampang kusabab konvérsi implisit. Chen kami ngartikeun variabel dina basa sapertos javascript atanapi Python, juru bahasa jaga pikeun ngarti naon jinisna, sareng nyawiskeun ruang memori anu cekap pikeun ngalaksanakeun operasina. Hayu urang tingali conto saderhana 🙂

Milikna. Christopher Diaz Riveros

Sakumaha anjeun tiasa tingali, urang henteu kedah ngajelaskeun ka juru basa jinisna tina variabel kami, sabab éta ngurus masihan jinis sareng nyimpen dina mémori 🙂

Terang variabel anjeun

Ieu gumantung kana basa sareng jinis implementasi anu badé anjeun anggo, tapi léngkah munggaran pikeun tiasa program nyaéta diajar variabel anu tiasa anjeun anggo 🙂 Sakali anjeun ngartos kana variabel, anjeun bakal dina posisi anu ngagunakeunana épisién sareng logis pikeun nyimpen inpormasi (disayogikeun ku pangguna atanapi ku sistem). Ieu mangrupikeun léngkah munggaran dina tangga program sareng mudah-mudahan saatos maca tulisan ieu, anjeun bakal ngagaduhan pamahaman anu langkung saé ngeunaan cara komputer dianggo sareng kumaha nyimpen inpormasi. Éta bakal aya sareng kuring dugi ka artikel salajengna, émut kanggo ngantunkeun koméntar anjeun pikeun ningali naha anjeun kedah nguatkeun atanapi mairan kana hal anu khusus. Surak


Eusi tulisan taat kana prinsip urang tina étika éditorial. Pikeun ngalaporkeun kasalahan klik di dieu.

41 koméntar, tinggalkeun anjeun

Ninggalkeun koméntar anjeun

email alamat anjeun moal diterbitkeun. Widang diperlukeun téh ditandaan ku *

*

*

  1. Jawab data: Miguel Ángel Gatón
  2. Tujuan tina data: Kontrol SPAM, manajemén koméntar.
  3. Legitimasi: idin anjeun
  4. Komunikasi data: Data moal dikomunikasikan ka pihak katilu kacuali ku kawajiban hukum.
  5. Panyimpenan data: Basis data anu diayakeun ku Occentus Networks (EU)
  6. Hak: Iraha waé anjeun tiasa ngawatesan, cageur sareng mupus inpormasi anjeun.

  1.   Luis cenahna

    Nulis, ringkes sareng jelas, dina waktos anu sami pikaresepeun pikeun sadaya pemirsa. Padamelan anu saé.

    1.    ChrisADR cenahna

      Hatur nuhun pisan, salam 🙂

  2.   John Jesus cenahna

    Penjelasan anu saé. Anjeun mesin.

    1.    ChrisADR cenahna

      hatur nuhun

  3.   Ruben cenahna

    Saé pisan dipedar nuhun

    1.    ChrisADR cenahna

      Hatur nuhun ka anu parantos maca lengkep 🙂

  4.   Diego cenahna

    Saé pisan, hatur nuhun kanggo masukanana. Sareng ngamangpaatkeun masalah binér, aya kamungkinan anjeun tiasa masihan kami kelas IP, subnet, jsb. Kuring ngarti yén éta sanés masalah pamrograman, tapi penjelasan anu saé pikeun masalah éta parantos ngantosan.
    Deui, hatur nuhun kana panjelasan anjeun

    1.    ChrisADR cenahna

      Halo Diego, éta tiasa dilakukeun 🙂 nyaritakeun anu leres kuring ogé henteu acan ngiringan masalah éta, tapi teu aya cara anu langkung saé pikeun nalungtik tibatan ku milarian anu tiasa dibahas ngeunaan éta dina hiji tulisan 🙂 Kami bakal ngantepkeun éta daptar sabab tulisan salajengna anu parantos aya poko. sareng éta bakal nungkulan pengerasan. Salam 🙂

  5.   Pedro cenahna

    Anjeun guru anu hadé, sareng murah pisan pikeun ngajarkeun naon anu anjeun terang. Wilujeng sareng hatur nuhun.

    1.    ChrisADR cenahna

      Hatur nuhun pisan malah dilarapkeun ka gelar master di urang asing, saha anu terang, panginten moal lami deui sapertos kitu tiasa dipasihkeun 🙂 tapi pastina ngajar mangrupikeun hal anu ngajantenkeun dinten kuring reet Salam

  6.   hiji hal cenahna

    Kuring henteu kantos maca panjelasan anu langkung saé ngeunaan poko, conto anu munggaran nyaéta cemerlang

    sanaos kuring henteu kantos nguping kecap éta (sapertos variabel 16-bit), kecap ganda, atanapi kecap quad

    Paduli "parantos program", postingan na pikaresepeun. Upami aya masalah, postinganna nyaéta nganggo C (limit.h) salaku conto ukuran variabel, C ngagaduhan spésifikasi anu paling henteu aya.

    1.    ChrisADR cenahna

      Halo hal 🙂 hatur nuhun pisan, kuring nyontoan di jalan 😛 sabab éta pasti dipikaterang data pikeun anu parantos maca sakedik Majelis, sareng éta anu dipikaharti ku prosesor 🙂 hahaha pastina C henteu spésifik pisan, tapi kuring pikir éta Kusabab kanyataan yén portabilitas sareng arsitéktur anu béda anu didukungna parantos seueur rupa-rupa sahingga C kedah nampung unggal jenis prosésor pikeun leres-leres portabel
      Salam sareng hatur nuhun pikeun ngabagi.

  7.   Sergio cenahna

    Unnn matak pikaresepeun upami séri tutorial ieu dumasar kana karat, janten éta mangrupikeun salah sahiji bahasa anu paling narik anu dikembangkeun ayeuna.
    Kuring aya di tukangeunana, tapi kuring sadar yén éta mangrupikeun bahasa anu sesah, tapi ku pikahareupeun anu hadé ...
    Kuring ngarepkeun tulisan anjeun salajengna, éta leres-leres pikaresepeun.
    Salam.

    1.    ChrisADR cenahna

      Halo Sergio, éta pasti bakal pikaresepeun, kuring kantos nguping yén GNOME ngarencanakeun nerapkeun Rust dina sababaraha program na, kuring henteu acan ningali ruang lingkup anu dihaja, tapi hijrah bakal datang.
      Sedengkeun pikeun basa, kuring sacara pribadi masih diajar C, kuring hoyong tiasa ngamimitian ngembangkeun dina kernel dina sababaraha bulan ka payun, sareng kuring resep diajar sababaraha basa sacara jero sateuacan kuring ngamimitian ngulas anu anyar, tapi kuring pasti tiasa milarian anu matak sareng ngalakukeun sababaraha conto di Karat, kumargi dokuméntasi na katingalina lumayan saé.
      Salam sareng hatur nuhun parantos ngabagi 🙂

  8.   David cenahna

    Penjelasan anu saé pisan, boh dina tulisan ieu boh anu sateuacanna. Kuring miharep anjeun teraskeun sareng téma ieu anu kuring pikaresepeun pisan.

    1.    ChrisADR cenahna

      Halo David, kuring ogé ngarepkeun pikeun neraskeun nyerat sareng khususna ngamotivasi jalma pikeun ilubiung sareng perangkat lunak gratis, seueur pisan proyek sareng kabutuhan ayeuna anu gaduh sababaraha tangan tambahan kanggo ngembangkeun bakal langkung saé
      Wasalam

  9.   Kemranjén cenahna

    Naha anjeun tiasa ngadamel tulisan ngeunaan mesin Turing?

    1.    ChrisADR cenahna

      Hello Mart 🙂 Saur kuring dina sababaraha koméntar kami parantos némpél sateuacanna, leres? Kuring yakin kuring tiasa ngahijikeun hiji hal anu pikaresepeun dina masalah 🙂 hayu urang tingali naon anu tiasa kaluar. Salam sareng hatur nuhun parantos maca sadayana tulisan kuring, ti mimiti dinten dugi ka ayeuna kuring kantos ningali anjeun rada resep 🙂

  10.   ALLAN LARA cenahna

    Wah, hatur nuhun pisan penjelasan anu saé.

    Wasalam

    1.    ChrisADR cenahna

      Hatur nuhun pisan Allan 🙂 salam

  11.   Ramon Hidalgo cenahna

    Kuring maca tulisan anjeun saencanna! Hatur nuhun pisan kana penjelasanana, sanaos kuring mikir yén kuring moal pernah bérés ngartos kecap na.

    1.    ChrisADR cenahna

      Hai Ramon 🙂 hatur nuhun pisan parantos maca duanana. Upami aya gunana, «kecap» mangrupikeun évolusi bait, éta sapertos prosesor, sateuacan aya 8-bit, saatos 16-bit, jst ... ieu kusabab unggal waktos urang meryogikeun langkung seueur rohangan pikeun prosés sareng kagancangan atanapi kakuatan anu langkung saé ... kecap 'lahir' sabab rohangan 'byte' murag pondok, sareng sami sareng kecap 'dobel' sareng 'quad' 🙂 épolusi alami anu ngajantenkeun urang nambihan kakuatan jeung rohangan pikeun terus mekarkeun 🙂

      Wasalam

  12.   henteu aya namina cenahna

    2018 ieu kuring diajar program enya atanapi enya, hatur nuhun

    1.    ChrisADR cenahna

      Abdi bungah 🙂 cobian pisan !! Surak

  13.   tagihan cenahna

    Hatur nuhun pisan, teraskeun. Kuring parantos terang kumaha program tapi kuring ngantosan ajaran anjeun, yén program anu diajarkeun ku kuring nyalira pinuh ku prakték-prakték goréng.

    1.    ChrisADR cenahna

      Nuhun Guillermo 🙂 Nya kuring ngarepkeun anjeun mendakan hal anu matak ogé dina postingan ieu 🙂 Salam

  14.   Edgar cenahna

    Katerangan saderhana sok paling saé .. saé ..
    Kuring bakal ngajukeun git ... pikeun programer éta dasar nalika anjeun badé damel salaku hiji tim sareng nempatkeun karya anjeun dina urutan .. vérsi na ..

    1.    ChrisADR cenahna

      Leres pisan Edgar, kuring bakal nyobian ngeposkeun kontén perkawis éta, sanaos sesah kanggo nyebatkeun hal anu énggal kusabab dokuméntasi git parantos seueur sareng sababaraha hal anu parantos ditarjamahkeun kana sababaraha bahasa. Kuring bakal ningali naon anu kuring tiasa lakukeun, salam sareng hatur nuhun pikeun ngabagi

  15.   Tiririri cenahna

    Halo, naha nomer tina 0 dugi ka 18 446 744 073 709 551 615 pakait sareng nilai desimal 64-bit atanapi éta ngarujuk kana nilai anu sanés? Nya, ngitung kakuatan 2 ^ 64, hasilna anu kuring kéngingkeun nyaéta: 18 446 744 073 709 552.

    1.    ChrisADR cenahna

      Hai Tiririri, saur anjeun aya masalah bulat, anjeun tiasa nyobian nganggo paréntah bc? mangrupikeun bahasa pamrograman anu dirancang salaku pas anu mungkin, pas di jero éta kedah dilakukeun 2^64, panginten anu bakal ngabéréskeun sabab ngantep kuring terang kumaha jalanna, salam

      . Nilai saleresna nyaéta 18 446 744 073 709 551 616, tapi urang ngirangan 1 sabab 0 diitung salaku kamungkinan nilai 🙂

      1.    Tiririri cenahna

        Nuhun, kuring ngitung éta nganggo kalkulator listrik anu kuring kapendakan dina net (https://es.calcuworld.com/calculadoras-matematicas/potencias/) sareng éta hasil anu masihan kuring.
        Sareng leres, kuring parantos nyobian paréntah bc, sareng éta sacara efektif masihan kuring nilai anu anjeun tulis.

  16.   Tiririri cenahna

    Halo deui, gambar dimana anjeun ningali watesna. H perpustakaan leutik pisan sareng teu tiasa dibaca (sahenteuna henteu tiasa maca, sabab kuring ningali yén sadayana terang, sigana), sareng kusabab kuring henteu ngartos éta kuring henteu teras-terasan deui maca. Kuring henteu terang naha anjeun tiasa ngarobihna, kuring miharep kuring henteu ngaganggu anjeun ku éta.

    1.    ChrisADR cenahna

      Anjeun tiasa nyobian versi sélulérna, anu katingalina rada langkung jelas, éta téma wordpress: / di sisi anu sanésna, sadaya header C tiasa dipendakan dina / usr / kalebet /, dina hal ieu anjeun tiasa milih pikeun maca langsung upami anjeun langkung gampil 🙂 Kuring bakal nyobian unggah gambar anu langkung ageung pikeun ningali naha éta ngabantuan 🙂

      1.    Tiririri cenahna

        Nuhun, sigana kuring kedah sabar kana ieu, heh heh.

  17.   Katekyo cenahna

    Hatur nuhun kana tulisan éta sabab ayeuna kuring langkung ngartos langkung saé variabel sareng kisaran representasi tina hiji bahasa sareng ayeuna kuring pikir kuring kedah ngamimitian nganggo perpustakaan "stdint.h" kumargi aranjeunna nyarankeun éta pikeun dianggo nalika program dina c saprak Kuring parantos diajar ka sakola baheula kumargi ingetan penting pisan sareng anu kedah ati-ati sareng anu dianggo

    1.    ChrisADR cenahna

      Teu aya alesan pikeun Katekyo, éta pasti langkung saé nganggo perpustakaan standar, tapi kuring tiasa mastikeun yén anjeun langkung saé terang naon anu ngabédakeun uint_least8_t ti uint_fast8_t sareng anu kahontal ku terang jinis data anu primitif, anu tujuanana tina tulisan 🙂 Hatur nuhun kana koméntar sareng maca tulisanna, salam

  18.   Koswara cenahna

    : Atanapi panjelasan anu saé! Kuring terang bagéan konsépna tapi kuring ngagaduhan seueur élmu anyar tina tulisan ieu

    1.    ChrisADR cenahna

      Hatur nuhun pisan Victor 🙂 kumaha saéna tulisan éta tiasa janten bantosan, salam

  19.   Guille cenahna

    Abdi resep pisan Python pikeun mempermudah pemrograman, kuring ningali kursus di http://zetcode.com/gui/pyqt4/ Kuring resep ka tetris akhir tina: http://zetcode.com/gui/pyqt4/thetetrisgame/
    Kuring ngencét deui tetris ieu nalika usum panas pikeun nempatkeun poin, multiplayer sareng musik, sakedik-sakedik, tapi pikaresepeun pisan.

    1.    ChrisADR cenahna

      Halo Guille, éta pasti ngahibur pisan ningali parangkat lunak anu anjeun damel pikeun tumuh sakedik-sakedik 🙂 éta mangrupikeun pangalaman anu teu tiasa dibandingkeun, sareng langkung-langkung upami aya anu mendakan naon anu anjeun ngembangkeun mangpaat, éta ti dunya anu sanés 😀 hatur nuhun pisan pikeun ngabagi 🙂

      1.    Guille cenahna

        Anu kuring lakukeun kuring parantos unggah (30Mb pikeun musik) ka http://guillermo.molleda.com/Tetris9.7z
        Anjeun kedah ngonpigurasikeun kecepatan awal anu béda pikeun masing-masing pamuter atanapi upami anjeun nga-restart poin saatos pertandingan anyar,…, sareng aya tilu pamaén pikeun dua putri abdi pikeun maénkeun sareng kuring. Éta malah adiktif.