Saya tahu, pertanyaannya sepertinya aneh. Pemrogram terkadang berpikir terlalu banyak. Silakan baca terus ...
Dalam penggunaan CI signed
dan unsigned
bilangan bulat banyak. Saya suka fakta bahwa kompiler memperingatkan saya jika saya melakukan hal-hal seperti menugaskan integer yang ditandatangani ke variabel yang tidak ditandatangani. Saya mendapat peringatan jika saya bandingkan ditandatangani dengan bilangan bulat yang tidak ditandatangani dan banyak lagi.
Saya suka peringatan ini. Mereka membantu saya menjaga kode saya tetap benar.
Mengapa kita tidak memiliki kemewahan yang sama untuk kendaraan hias? Root kuadrat pasti tidak akan pernah mengembalikan angka negatif. Ada juga tempat lain di mana nilai float negatif tidak memiliki arti. Kandidat sempurna untuk pelampung tanpa tanda tangan.
Btw - Saya tidak terlalu tertarik dengan sedikit presisi tambahan yang bisa saya dapatkan dengan menghapus bit tanda dari pelampung. Saya sangat senang dengan float
mereka seperti sekarang. Saya hanya ingin menandai float sebagai unsigned terkadang dan mendapatkan peringatan yang sama dengan yang saya dapatkan dengan bilangan bulat.
Saya tidak mengetahui adanya bahasa pemrograman yang mendukung angka floating-point yang tidak ditandatangani.
Adakah yang tahu mengapa mereka tidak ada?
EDIT:
Saya tahu bahwa FPU x87 tidak memiliki instruksi untuk menangani float yang tidak ditandatangani. Mari kita gunakan instruksi float yang sudah ditandatangani. Penyalahgunaan (mis. Menjadi di bawah nol) dapat dianggap sebagai perilaku yang tidak terdefinisi dengan cara yang sama dengan overflow bilangan bulat yang ditandatangani tidak ditentukan.