Short и char введите в Java
В соответствии со стандартом Java оба типа short
и char
используют 2 байта, поэтому, когда я кодирую что-то вроде:
char ch = 'c';
short s = ch;
Ошибка "возможная потеря точности". Что мне здесь не хватает?
Ответы
Ответ 1
char
не подписан, short
подписан.
Таким образом, хотя они имеют длину 2 байта, они используют шестнадцатый бит для разных целей.
Диапазон типа char
0 до 2 ^ 16 - 1 (от 0 до 65535).
short
диапазон составляет -2 ^ 15 до 2 ^ 15-1 (от -32 768 до 32 767).
Ответ 2
Разница в том, что char
не имеет знака, short
подписан. Таким образом, половина диапазона значений char
слишком велика, чтобы быть представлена как short
(и, конечно, в симметрии char
не может представлять ни одно из отрицательных значений short
can).