Короткое целое без знака в Java

MesaSQLite является лучшим, я нашел до сих пор.

www.desertsandsoftware.com

Взгляды, очень перспективные действительно.

56
задан 0xCursor 24 June 2019 в 14:12
поделиться

7 ответов

Вы действительно не можете. В Java нет беззнаковых типов данных, за исключением char .

По общему признанию, вы могли использовать char - это 16-битный беззнаковый тип, но это было бы ужасно, на мой взгляд, поскольку char явно предназначено для текста: когда код использует char , я ожидаю, что он будет использовать его для единиц кода UTF-16, представляющих текст, который Интересные для программы, не произвольные беззнаковые 16-битные целые числа, не имеющие отношения к тексту.

66
ответ дан 26 November 2019 в 17:20
поделиться

В Java нет беззнаковых типов. Для чего он вам нужен?

Однако в Java есть тип данных «byte».

-1
ответ дан 26 November 2019 в 17:20
поделиться

Ага, если вы хотите использовать значение в операциях кода и битов, такого нет.

1
ответ дан 26 November 2019 в 17:20
поделиться

В Java такого типа нет

3
ответ дан 26 November 2019 в 17:20
поделиться

Вы можете использовать char, поскольку это беззнаковое 16-битное значение (хотя технически это символ Юникода, поэтому в будущем он может потенциально измениться на 24-битное значение) ... другой вариант - использовать int и убедиться, что он находится в пределах диапазона.

Не используйте char - используйте int: -)

А вот ссылка , в которой обсуждается Java и отсутствие беззнакового .

10
ответ дан 26 November 2019 в 17:20
поделиться

If you really need a value with exactly 16 bits:

Solution 1: Use the available signed short and stop worrying about the sign, unless you need to do comparison (<, <=, >, >=) or division (/, %, >>) operations. See this answer for how to handle signed numbers as if they were unsigned.

Solution 2 (where solution 1 doesn't apply): Use the lower 16 bits of int and remove the higher bits with & 0xffff where necessary.

14
ответ дан 26 November 2019 в 17:20
поделиться

Вы можете создать класс ShortUnsigned и определить методы для тех операторов, которые вам нужны. Вы не сможете перегрузить + и - и другие на них, а также не сможете выполнять неявное преобразование типов с другими примитивными или числовыми типами объектов, увы.

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

-1
ответ дан 26 November 2019 в 17:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: