Saya punya pertanyaan yang sangat sederhana yang membuat saya bingung untuk waktu yang lama. Saya berurusan dengan jaringan dan basis data sehingga banyak data yang saya tangani adalah penghitung 32-bit dan 64-bit (tidak ditandatangani), id identifikasi 32-bit dan 64-bit (juga tidak memiliki pemetaan tanda yang berarti). Saya praktis tidak pernah berurusan dengan masalah kata nyata yang dapat dinyatakan sebagai angka negatif.
Saya dan rekan kerja saya secara rutin menggunakan tipe yang tidak ditandatangani seperti uint32_t
dan uint64_t
untuk masalah ini dan karena itu sering terjadi kami juga menggunakannya untuk indeks array dan penggunaan integer umum lainnya.
Pada saat yang sama berbagai panduan pengkodean yang saya baca (misalnya Google) mencegah penggunaan tipe integer yang tidak ditandatangani, dan sejauh yang saya tahu baik Java maupun Scala tidak memiliki tipe integer yang tidak ditandatangani.
Jadi, saya tidak tahu apa yang benar untuk dilakukan: menggunakan nilai yang ditandatangani di lingkungan kita akan sangat merepotkan, pada saat yang sama panduan pengkodean bersikeras untuk melakukan hal ini.