Perbedaan antara Signed and Unsigned Perbedaan Antara

Anonim

Signed vs. Unsigned

Sistem bilangan kami terbentang dari tak terhingga hingga tak berhingga tanpa nol tepat di tengahnya. Namun, dalam pemrograman, pada dasarnya ada dua jenis angka; yang ditandatangani dan tidak bertanda tangan. Perbedaan utama antara nomor yang ditandatangani dan unsigned adalah, well, kemampuan untuk menggunakan angka negatif. Nomor yang tidak terdaftar hanya bisa memiliki nilai nol atau lebih. Sebaliknya, nomor yang ditandatangani lebih alami dengan kisaran yang mencakup angka negatif ke angka positif.

Penciptaan nomor ditandatangani dan unsigned diminta oleh kebutuhan untuk mewakili nilai numerik dengan sumber daya yang sangat terbatas. Misalnya, menggunakan 8 bit, Anda hanya memiliki total 256 kombinasi. Dengan nomor unsigned, itu berarti ada nilai antara 0 dan 255. Sebaliknya, memiliki nomor yang ditandatangani berarti Anda sudah kehilangan sedikit untuk mewakili tandanya. Dengan 7 bit Anda memiliki maksimum 128 kombinasi sehingga jangkauan Anda dengan nomor yang ditandatangani 8 bit adalah dari -128 sampai 127. Jadi, jika Anda memiliki sumber daya terbatas, seperti pada hari-hari awal komputasi, menggunakan nomor yang tidak ditandatangani adalah cara untuk pergi.

Bila menggunakan nomor yang ditandatangani dan tidak ditandatangani dalam pemrograman, lebih aman untuk hanya menggunakan satu atau yang lain bersamaan dengan keduanya dapat menyebabkan masalah. Yang pertama adalah saat Anda membandingkan unsigned dengan nomor yang ditandatangani. Ini biasanya menghasilkan peringatan, namun kompilator bisa mengkompilasinya. Masalah kedua dan yang lebih serius adalah ketika Anda menetapkan isi nomor yang tidak ditandatangani ke nomor yang ditandatangani. Jika nilai nomor unsigned lebih besar dari nilai maksimum dari nomor yang ditandatangani, ini akan mengakibatkan kesalahan.

Seiring berkembangnya teknologi, sumber daya menjadi lebih melimpah, dan penggunaan nomor unsigned menjadi kurang dan kurang diperlukan. Untuk mengilustrasikan hal ini, ingatlah bahwa nomor 32 bit dapat memiliki nilai maksimum yang ditandatangani 2 juta atau 4 juta jika tidak ditandatangani. Bila Anda pindah ke 64 bit, selisihnya antara 90 dan 180 kuintil; nilai yang jarang digunakan jika sama-sama dalam program umum.

Ringkasan:

1. Nomor yang tidak terdaftar hanya termasuk nomor nol dan positif sementara nomor yang ditandatangani mencakup angka negatif.

2. Nomor yang ditandatangani memiliki nilai maksimal setengah dari jumlah unsigned.

3. Pencampuran nomor ditandatangani dan unsigned bisa mengakibatkan masalah.

4. Menggunakan nomor yang ditandatangani atau tidak ditandatangani tidak banyak berpengaruh pada aplikasi modern.