发布网友 发布时间:2022-04-22 04:25
共3个回答
热心网友 时间:2023-09-15 16:24
在Java中,char是16bit长的无符号整数,因此范围是:0~65535,而short则是16bit长的带符号整数,范围是-32768~32767。 所以,两者虽然字长相同,但意义却不一样(表示范围并不完全重合或包含),因此不管是char转换成short,还是short转换成char,都属于数值的“窄化转换”(Narrowing Primitive Conversion)。 窄化转化都可能“丢失精度”,因此必须强制转换。虽然,这里的“丢失精度”跟从int到short的丢失精度给人的感觉似乎不一样,但仔细想想也没有什么区别,一方面,char有16个bit表示数值,而short用于表示数值大小的只有15个bit,因此,从char到short会“丢失数值精度”,而另一方面,short有1个bit表示数值的符号,而char却根本没有这么个符号位(所有的bit都用来表示数值大小了),所以从short到char也可能“丢失精度”,只是这里丢失的是有关正负的“精确程度”。
热心网友 时间:2023-09-15 16:25
short a ='a'是将字符自动的转换成了 短整型了
java中小类型是可以自动的转为大类型的,但是反过来却不行
热心网友 时间:2023-09-15 16:25
就想 long a = 1L int a = 1有什么区别