Java中的short和char类型

shr*_*sva 16 java

根据Java标准,short和char类型都使用2个字节,因此当我编写类似的东西时

char ch = 'c';
short s = ch;
Run Code Online (Sandbox Code Playgroud)

有一个错误说"可能会失去精确度".我在这里缺少什么

Pet*_*ego 41

Char未签名,签名简称.

因此,虽然它们都是2字节长,但它们将第16位用于不同目的.

char类型的范围是0到2 ^ 16 - 1(0到65535).

短程为-2 ^ 15至2 ^ 15 - 1(-32,768至32,767).


Mic*_*rdt 11

区别在于char未签名,short已签名.因此,一半的值范围char太大而不能表示为a short(当然,在对称性方面,char不能代表任何负值short都可以).