根据Java标准,short
和char
类型都使用2个字节,因此当我编写以下代码时:
char ch = 'c';
short s = ch;
出现了“可能会丢失精度”的错误。我错过了什么吗?
根据Java标准,short
和char
类型都使用2个字节,因此当我编写以下代码时:
char ch = 'c';
short s = ch;
出现了“可能会丢失精度”的错误。我错过了什么吗?
char
是无符号类型,short
是有符号类型。
虽然它们都是两个字节长,但它们使用第16位的方式不同。
char
类型的取值范围是0到2^16-1 (0到65535)。
short
类型的取值范围是-2^15到2^15-1 (-32768到32767)。
区别在于char
是无符号的,而short
是有符号的。因此,char
的值域范围中一半的值太大了,不能用short
表示(当然,同样地,char
不能表示short
能表示的任何负值)。