informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Biasanya, variabel tipe int menempati 4 byte, 1 byte memiliki 8 bit, dan setiap bit memiliki dua status: 0 dan 1. Oleh karena itu, variabel tipe int dapat mewakili total 2^32 status (yaitu, dapat mewakili 2 ^8 nilai data).
Dimulai pada 07:36
pemahaman lebih lanjut
bertanya: Dari kedua video di atas kita dapat mengetahui bahwa range bilangan bulat positif yang dapat diwakili oleh tipe int adalah 1 ~ 2^31 - 1. Jika logika ini kita analogikan dengan bilangan bulat negatif, maka range bilangan bulat yang dapat direpresentasikan menurut tipe int tidak boleh -2^31 + 1 ~ 2^31 -1? Karena nilai 2^31 tidak dapat diperoleh, mengapa -2^31 dapat diperoleh?
menjawab:Dalam ilmu komputer, representasi bilangan bulat bertanda yang paling umum digunakan adalahrepresentasi komplemen dua . Metode ini tidak hanya menyelesaikan masalah representasi bilangan positif dan negatif, tetapi juga menyederhanakan operasi penjumlahan dan pengurangan biner. Mari kita lihat representasi ini secara detail:
1. Angka positif : Representasi biner bilangan positif sama dengan bilangan tak bertanda. Misalnya, representasi biner 3 digit dari 3 adalah 011.
2. angka negatif : Representasi bilangan negatif dicapai melalui komplemen bilangan positif. Komplemen dua bilangan negatif dihitung dengan membalik representasi biner dari nilai absolut bilangan tersebut dan menambahkan 1. Misalnya:
① Negasi: Pertama-tama balikkan representasi biner dari 3, 011, menjadi 100.
② Tambahkan 1: Tambahkan 1 ke 100 untuk mendapatkan 101, sehingga representasi komplemen keduanya dari -3 adalah 101.
Untuk variabel bilangan bulat 32-bit, bit tertingginya (disebut juga bit tanda) mewakili tanda, 0 mewakili positif dan 1 mewakili negatif. 31 bit sisanya digunakan untuk mewakili nilai numerik.Selanjutnya, kembali ke pertanyaan yang baru saja diajukan:
1. Kisaran positif (termasuk 0) : Bit tandanya adalah 0, dan 31 bit sisanya dapat mewakili nilai dari 000…000 (31 0s) hingga 011…111 (31 1s). Rentang desimal yang sesuai adalah dari 0 hingga 2^31 - 1.
2. Kisaran negatif : Bit tandanya adalah 1, dan 31 bit sisanya dapat mewakili nilai dari 100...000 (31 0s) hingga 111...111 (31 1s). Diantaranya, bilangan komplemen keduanya 100...000 (31 nol) mewakili -2^31, dan nilai desimal yang sesuai adalah -2^31. Bilangan komplemen keduanya yaitu 111...111 (31 satuan) melambangkan -1, dan nilai desimalnya adalah -1.
Kisaran bilangan positif: 1 ~ 2^31 - 1; kisaran bilangan negatif: -1 ~ -2^31, jumlah totalnya masih 2^32 keadaan berbeda. Oleh karena itu, biasanya rentang nilai integer tipe int adalah -2147483648 ~ 2147483647 (yaitu -2^31 ~ 2^31 - 1)
Berapa byte yang ditempati int 64-bit? Perbedaan antara tipe integer int, long dan long long
Berapa byte yang ditempati int 64-bit? [Wawancara] Berapa byte yang ditempati int?
Perbedaan antara mesin 32-bit dan 64-bit serta jumlah byte yang ditempati oleh tipe data dasar
Tipe integer bahasa C (termasuk rentang dan panjang nilai)
Berapa byte yang ditempati oleh tipe int?
Ukuran data tipe int dan tipe pointer pada platform berbeda
Masalah ukuran Java()
Variabel tipe int di python dapat menyimpan bilangan bulat dengan ukuran berapa pun
Meringkaskan:
- Ukuran tipe data C dan C++ dipengaruhi oleh standar kompilasi, kompiler, bitness sistem operasi, dll.
- Ukuran tipe data Java dan Python ditentukan oleh spesifikasi bahasa atau implementasi juru bahasa, dan tidak dipengaruhi oleh faktor seperti kompiler dan bitness sistem operasi.
- Alasan utama perbedaan desain ini adalah karena C dan C++ merupakan bahasa pemrograman sistem yang biasanya perlu berinteraksi langsung dengan perangkat keras, sehingga ukuran tipe datanya akan bervariasi bergantung pada lingkungan yang mendasarinya, sedangkan Java dan Python berukuran besar; bahasa pemrograman tingkat dengan tingkat abstraksi yang lebih tinggi. Tujuan desain adalah konsistensi lintas platform.