为了账号安全,请及时绑定邮箱和手机立即绑定

假设有int x=1;以下哪个代码导致“可能损失精度,找到int需要char”这样的编 译错误?

假设有int x=1;以下哪个代码导致“可能损失精度,找到int需要char”这样的编 译错误?

慕运维6449622 2016-06-13 19:42:07
假设有int x=1;以下哪个代码导致“可能损失精度,找到int需要char”这样的编译错误?A. short t=12+'a';      B .char c= 'a'+1;      C. char m='a'+x;   D .byte n='a'+1;
查看完整描述

2 回答

?
冰山点水

TA贡献109条经验 获得超149个赞

C会报错,x是int型变量,如果要赋值给char型变量,需要强转!char m=(char)('a'+x)

查看完整回答
1 反对 回复 2016-06-13
?
kstg5944571

TA贡献18条经验 获得超16个赞

C,x=1是int型,java中int是4字节的,char是2字节,int转char只截取int(32位)的后16位,所以可能损失精度

查看完整回答
反对 回复 2016-06-13
  • 慕运维6449622
    慕运维6449622
    B .char c= 'a'+1; 怎么解释
  • kstg5944571
    kstg5944571
    这语法应该是错的,应该要用强制转换,'a'的值应该是字母对应的ASCII值貌似是97,由于char类型长度比int长不会丢失精度。
  • qq_慕妹9228314
    qq_慕妹9228314
    需要强制转换类型,应改为char c=(char)'a'+1 这时97+1=98在char范围内,不会强制转化出现“可能损失精度”这样的错误,这语句语法是错的, 为什么char m='a'+x就有这样的报错呢,它怎么就超出了这个范围?
点击展开后面1
  • 2 回答
  • 0 关注
  • 5301 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信