short s=1;
s=s+1;X
自然是编译不通过的 提示损失精度
那么
short s=1;
s+=1;√
为什么能编译通过?
还有一个问题
隐式类型转换可以从小到大自动转,即byte->short->int->long如果反过来会丢失精度,必须进行显示类型转换
而s+=1的意思与s = s+1不同,s=s+1这句先执行s+1然后把结果赋给s,由于1为int类型,所以s+1的返回值是int,编译器自动进行了隐式类型转换
所以将一个int类型赋给short就会出错,而s+=1不同由于是+=操作符,在解析时候s+=1就等价于s = (short)(s+1),翻番来讲就是
s+=1 <=> s = (s的类型)(s+1)
详细解决方案
short s=1;s=s+1;与short s=1;s+=1;的区别
热度:77 发布时间:2024-02-24 22:07:23.0
相关解决方案
- this id generator generates long, integer, short 异常
- short s1 = 一; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)
- debug中 jcxz 88以下可以 0-87 就不可以,jmp short ffff 居然可以,不能超8位呀
- JNZ SHORT 1.00439E29如何理解啊
- I gotta have a short nap.解决思路
- I gotta have a short nap.该怎么解决
- 在0624单元内有一条两字节指令“jmp short obj”,如其中位移量为0B2H,则转向目的地址obj的值是
- 求助 (short*)NULL + 10 = ?
- WCF 与网络服务保险WS-Security (Web Services Security, short WSS)
- tld里面的<short-name>到底是有什么用?该如何解决
- java中整数门类(short int lang)的存储方式
- List<Short> l=new ArrayList<Short>();该怎么处理
- java整数类型-byte、short、int、long解决方案
- short a = 1;当执行a += 2;时,为什么不会提示精度损失?解决办法
- think in java4 中,<<<处理byte short char的解释 ,解决立即给分
- c语言的typedef unsigned short int16u; 这个咋在java表示?解决方法
- switch为何只能用int,short,byte,char,而不能用long,String
- switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string,该如何处理
- short i = 6;可以,为什么i = i + 6;就不可以解决方法
- short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?该如何解决
- switch(),不是()里面的只能是int short byte char的么?解决思路
- *(volatile unsigned short *)0x20000000背后的意义是啥?该如何处理
- I gotta have a short nap.该怎么处理
- 请教SMSC number是什么?作用是什么?(SMSC 短信服务中心 short message service center)最好具体点,本人刚接触通信
- debug中 jcxz 88之上可以 0-87 就不可以,jmp short ffff 居然可以,不能超8位呀
- 5-----A Short-Term Electric Load Forecasting Scheme Using 2-Stage Predictive Analytics
- 16、Short-term electricity load forecasting method based on multilayered self-normalizing GRU network
- short--int--long--float--double占用字节,C语言,环境keil
- short s1 = 1; s1 = s1 + 1; 和 short s1 = 1; s1 += 1;
- marshal data too short (ArgumentError)