Perbezaan Antara Yang Ditandatangani dan Unsigned Perbezaan Antara
Ditandatangani vs Unsigned
Sistem nombor kami memanjangkan dari infiniti negatif ke tak terhingga positif dengan hak sifar di tengah. Walau bagaimanapun, dalam pengaturcaraan, terdapat pada dasarnya dua jenis nombor; yang ditandatangani dan tidak ditandatangani. Perbezaan utama antara nombor yang ditandatangani dan tidak ditandatangani adalah, dengan kemampuan untuk menggunakan nombor negatif. Nombor unsigned hanya boleh mempunyai nilai sifar atau lebih tinggi. Sebaliknya, nombor yang ditandatangani lebih semula jadi dengan julat yang termasuk negatif kepada nombor positif.
Penciptaan nombor yang ditandatangani dan tidak ditandatangani digesa oleh keperluan untuk mewakili nilai angka dengan sumber yang sangat terhad. Sebagai contoh, menggunakan 8 bit, anda hanya mempunyai sejumlah 256 kombinasi. Dengan nombor yang tidak ditandatangani, ini bermakna sebarang nilai antara 0 dan 255. Sebaliknya, mempunyai nombor yang ditandakan bermakna anda sudah kehilangan sedikit untuk mewakili tanda. Dengan 7 bit anda mempunyai maksimum 128 kombinasi jadi julat anda dengan nombor yang ditandatangani 8 bit adalah dari -128 hingga 127. Jadi jika anda mempunyai sumber yang terhad, seperti pada hari-hari awal pengkomputeran, menggunakan nombor yang tidak ditandatangani adalah cara untuk pergi.
Apabila menggunakan nombor yang ditandatangani dan tidak ditandatangani dalam pengaturcaraan, ia adalah lebih selamat untuk hanya menggunakan satu atau yang lain secara serentak menggunakan kedua-duanya boleh menyebabkan masalah. Yang pertama adalah apabila anda membandingkan unsigned ke nombor yang ditandatangani. Ini biasanya menyebabkan amaran, tetapi pengkompil boleh menyusunnya pula. Masalah kedua dan lebih serius adalah apabila anda memberikan kandungan nombor yang tidak ditandatangani kepada nombor yang ditandatangani. Sekiranya nilai nombor yang tidak ditandatangani adalah lebih besar daripada nilai maksimum nombor yang ditandatangani, ini akan mengakibatkan ralat.
Seperti teknologi yang dibangunkan, sumber menjadi lebih banyak, dan penggunaan nombor tidak ditandatangani semakin kurang dan kurang diperlukan. Untuk menggambarkan ini, perlu diingat bahawa nombor panjang 32 bit boleh mempunyai nilai maksimum yang ditandatangani sebanyak 2 juta atau 4 juta jika ia tidak ditandatangani. Apabila anda berpindah ke 64 bit, perbezaan antara 90 dan 180 quintillion; nilai-nilai yang jarang digunakan jika dalam semua program biasa.
Ringkasan:
1. Nombor unsigned hanya termasuk sifar dan nombor positif manakala nombor yang ditandatangani termasuk nombor negatif.
2. Nombor yang ditandatangani mempunyai separuh nilai maksimum nombor unsigned.
3. Mencampurkan nombor yang ditandatangani dan tidak ditandatangani boleh menyebabkan masalah.
4. Menggunakan nombor yang ditandatangani atau tidak ditandatangani tidak banyak memberi kesan kepada aplikasi moden.