[Powered by Google Translate] JORDAN JOZWIAK: Jenis pemutus, dalam erti kata yang mudah, adalah
cara untuk mengubah tafsiran beberapa data komputer oleh
tersirat atau jelas menukar jenis data.
Seperti berubah int kepada apungan, atau sebaliknya.
Untuk memahami pemutus jenis, kita perlu
mulakan dengan asas-asas -
jenis data diri.
Dalam bahasa komputer seperti C, semua pembolehubah mempunyai sejenis
jenis data yang menentukan bagaimana komputer, dan begitu juga
pengguna, menafsirkan pembolehubah yang.
Jenis data berangka seperti int, float lama panjang, dan
double, semua mempunyai ciri-ciri unik masing-masing dan
digunakan untuk menentukan nilai-nilai yang berbeza-beza antara dan ketepatan.
Jenis pemutus membolehkan kita untuk mengambil nombor titik apung seperti
3.14 dan mendapat bahagian sebelum perpuluhan, 3 dalam kes ini,
dengan pemutus ia int an.
Mari kita mengambil contoh daripada bahasa Inggeris untuk ringkas
mengkaji jenis, dan untuk melihat bagaimana pemutus jenis boleh menukar
cara kita mentafsir sekeping data.
Untuk data, mari kita mengambil simbol di sini.
Saya hanya merujuk kepada ayat-ayat ini dengan berhati-hati dikonfigurasikan sebagai
simbol, tetapi sebagai seseorang yang tahu bahasa Inggeris,
anda segera mengiktiraf bahawa mereka adalah, pada hakikatnya, surat.
Anda tersirat memahami jenis data.
Melihat rentetan ini surat kita boleh melihat dua
perkataan yang berbeza, masing-masing dengan makna yang tersendiri.
Ada kata nama, angin, seperti dalam angin bertiup di luar.
Dan ada kata kerja, angin, seperti dalam saya perlu
menggulung menonton analog saya.
Ini adalah satu contoh yang menarik, kerana kita boleh lihat
bagaimana jenis yang kami sediakan data kami, sama ada kata nama atau
kata kerja, perubahan bagaimana kita menggunakan data -
perkataan sebagai angin atau angin.
Walaupun komputer tidak mengambil berat tentang tatabahasa dan bahagian
ucapan Inggeris, prinsip asas yang sama terpakai.
Iaitu, kita boleh mengubah tafsiran tepat
data yang sama disimpan dalam ingatan oleh hanya pemutus kepada
berlainan jenis.
Berikut adalah saiz jenis yang paling biasa pada 32-bit
sistem operasi.
Kami mempunyai char pada 1 bait int, dan terapung pada 4 bait, yang panjang
panjang dan kembar pada 8 bait.
Kerana int mengambil sehingga 4 bait, ia akan mengambil masa sehingga 32 bit
apabila ia disimpan dalam ingatan sebagai satu siri binari
sifar dan orang-orang.
Selagi sebagai pembolehubah kami kekal sebagai int jenis,
komputer akan sentiasa menukar orang-orang yang dan sifar daripada
perduaan ke nombor asal.
Walau bagaimanapun, kita secara teori boleh membuang mereka 32
bit ke dalam siri jenis Boolean.
Dan maka komputer tidak lagi akan melihat nombor, tetapi
bukannya koleksi sifar dan orang-orang.
Kita juga boleh cuba untuk membaca bahawa data bernombor berbeza
menaip, atau bahkan sebagai rentetan empat aksara.
Apabila berurusan dengan nombor dalam tuangan, anda mesti mempertimbangkan bagaimana
ketepatan nilai anda akan terjejas.
Perlu diingat bahawa ketepatan boleh tinggal sama,
atau anda boleh kehilangan ketepatan, tetapi anda tidak boleh mendapat ketepatan.
Mari kita pergi melalui tiga cara yang paling biasa yang anda boleh
kehilangan ketepatan.
Casting apungan untuk int an akan menyebabkan pemangkasan segala-galanya
selepas titik perpuluhan, jadi anda meninggalkan
dengan bilangan keseluruhan.
Jika kita mengambil x apungan yang akan sama 3,7, kita boleh membuang
ini x ubah int dengan hanya menulis int dalam
kurungan.
Apabila kita menggunakan istilah ini di sini, kami akan berkesan
menggunakan nilai tiga kerana kita telah dipenggal
segala-galanya selepas titik perpuluhan.
Kita juga boleh menukar lama int, yang akan
sama membawa kepada kerugian bit tertib tinggi.
A lama mengambil masa sehingga 8 bait, atau 64 bit dalam ingatan.
Jadi, apabila kita membuangnya ke int yang hanya mempunyai 4 bait, atau 32
bit, kita dasarnya mencincang semua bit yang
mewakili nilai perduaan yang lebih tinggi.
Anda juga boleh membuang berganda kepada apungan, yang akan memberi
anda apungan terdekat mungkin untuk dua kali ganda tanpa
semestinya pembundaran.
Serupa dengan panjang kami untuk penukaran int, kerugian dalam
ketepatan adalah kerana double mengandungi lebih banyak data.
Double A akan membolehkan anda untuk menyimpan 53 bit bererti,
kira-kira 16 digit yang ketara.
Manakala apungan hanya akan membenarkan anda untuk menyimpan 24
bit ketara, kira-kira tujuh digit bererti.
Dalam kedua-dua kes lepas, ia mungkin membantu untuk berfikir
menaip pemutus sebagai mengubah saiz gambar.
Apabila anda pergi dari saiz besar kepada saiz yang kecil, anda tidak boleh melihat
perkara dengan jelas kerana anda kehilangan data
dalam bentuk piksel.
Pemutus Jenis juga boleh menyebabkan masalah apabila kita
membuang ints untuk terapung.
Sejak terapung pada mesin 32-bit hanya mempunyai 24
bit bererti, mereka boleh tidak tepat mewakili nilai-nilai
lebih dari 2 kuasa 24, atau 16777217.
Sekarang mari kita bercakap tentang pemutus tersurat dan tersirat.
Pemutus jelas adalah apabila kita menulis jenis dalam kurungan
sebelum nama pembolehubah.
Sebagai contoh, sebelum kita menulis int dalam kurungan sebelum kami
terapung pembolehubah x.
Dengan cara ini, kita akan mendapat nilai int,
nilai dipenggal sebanyak 3.7 -
3.
Pemutus tersirat adalah apabila pengkompil secara automatik perubahan
jenis yang sama jenis super, atau melakukan beberapa jenis lain
pemutus tanpa memerlukan pengguna untuk menulis
mana-mana kod tambahan.
Sebagai contoh, apabila kita menambah 5 dan 1.1, nilai-nilai kita sudah mempunyai
jenis yang dikaitkan dengan mereka.
5 adalah int, manakala 1.1 apungan.
Dalam usaha untuk menambah mereka, komputer membuang 5 ke apungan,
yang akan menjadi perkara yang sama seperti menulis 5.0 dalam
tempat pertama.
Tetapi cara ini kita katakan apungan 5, atau 5.0, ditambah apa sudah
apungan, 1.1, dan dari sana kita sebenarnya boleh menambah-
nilai dan mendapatkan nilai 6.1.
Pemutus Tersirat juga membolehkan kita untuk menetapkan pembolehubah
jenis antara satu sama lain.
Kami sentiasa boleh menetapkan jenis yang kurang tepat menjadi lebih
yang tepat.
Sebagai contoh, jika kita mempunyai x double, dan y int -
dan ini boleh mempunyai apa-apa nilai yang kita menetapkan mereka -
kita boleh mengatakan x sama dengan y.
Kerana double mempunyai ketepatan lebih daripada int an, jadi kita
tidak akan kehilangan apa-apa maklumat.
Sebaliknya, ia akan tidak semestinya betul untuk mengatakan
y sama x, kerana dua kali ganda mungkin mempunyai nilai yang lebih besar daripada
integer.
Dan jadi integer mungkin tidak dapat untuk memegang semua
maklumat yang disimpan di dalam dua kali ganda.
Pemutus Tersirat juga digunakan dalam pengendali perbandingan seperti
lebih daripada, kurang daripada, atau pengendali kesaksamaan.
Dengan cara ini kita boleh mengatakan jika 5,1 adalah lebih daripada 5, dan kita mendapat
mengakibatkan benar.
Kerana 5 adalah int, tetapi ia akan dibuang kepada apungan untuk
berbanding kepada apungan 5.1, kita akan mengatakan 5.1 adalah
lebih daripada 5.0.
Perkara yang sama adalah benar dengan mengatakan jika 2.0 sama bersamaan 2.
Kami juga akan mendapatkan benar, kerana komputer akan membuang
integer 2 terapung dan kemudian mengatakan 2,0 sama sama 2,0,
ini adalah benar.
Jangan lupa bahawa kita juga boleh membuang antara ints dan aksara,
atau nilai ASCII.
Aksara juga perlu dikurangkan kepada perduaan, itulah sebabnya anda
boleh menukar antara aksara dan masing-masing
Nilai ASCII.
Untuk mengetahui lebih lanjut tentang perkara ini, check out video kami pada ASCII.
Apabila anda mengambil masa untuk berfikir tentang bagaimana data disimpan,
ia mula membuat banyak akal.
Ia adalah sama seperti perbezaan antara angin dan angin.
Data adalah sama, tetapi jenis boleh menukar cara kita
mentafsirkan ia.
Nama saya adalah Jordan Jozwiak, cs50 ini.