У мене дуже просте питання, яке мене довго бентежить. Я маю справу з мережами та базами даних, тому багато даних, з якими я маю справу, - це 32-бітні та 64-бітні лічильники (без підпису), 32-розрядні та 64-бітні ідентифікаційні ідентифікатори (також не мають значущого відображення знаків). Я практично ніколи не маю справу з жодним реальним питанням слова, яке можна було б виразити як негативне число.
Я та мої колеги регулярно використовують неподписані типи, як-от uint32_t
і uint64_t
для цих питань, і тому що це трапляється так часто, ми також використовуємо їх для індексів масивів та інших загальних цілих цілей.
У той же час різні посібники з кодування, які я читаю (наприклад, Google), перешкоджають використанню непідписаних цілочисельних типів, і наскільки я не знаю, ні Java, ні Scala не мають цільових цілей без підпису.
Отже, я не міг зрозуміти, що правильно робити: використання підписаних значень у нашому середовищі було б дуже незручно, в той же час кодування посібників наполягати саме на цьому.