Каков принятый способ обработки неподписанных данных в Java? - PullRequest
1 голос
/ 11 ноября 2011

Я прочитал (и в настоящее время использую это), что я могу использовать long, когда мне нужен неподписанный int.Это работает хорошо для меня, но похоже на плохой дизайн.Есть ли лучший, более приемлемый способ сделать это?А как насчет неподписанных длинных?

Ответы [ 2 ]

1 голос
/ 11 ноября 2011

Java не имеет неподписанных типов по выбору, вы используете подписанные типы, которые больше исходного типа без знака, чтобы обойти ограничение, но вы используете вдвое больше необходимой памяти.

В Java нет понятия без знака.

1 голос
/ 11 ноября 2011

Поскольку единственным типом примитивов без знака в Java является char, что имеет очень специфическое значение для обозначения символа Юникод, использование long является наиболее идиоматическим способом.

По умолчанию JAXB также сопоставляет xsd:unsignedInt с long. ( источник )

Редактировать : Если вы знаете, что старший бит равен 0, или используете операции только в том случае, если знак не имеет значения (например, вы просто передаете данные), вероятно, int чаще. JAXB по умолчанию long, потому что он не может знать, как вы собираетесь использовать данные.

...