卡卡西的微笑 2018-10-31 15:16 采纳率: 50%
浏览 1960
已采纳

Java char类型运算问题

请问为什么
char ch = 'A';
ch += 32;
System.out.println(ch);
能输出结果是a;

            而ch = ch+32;
            却会报错
  • 写回答

5条回答 默认 最新

  • 一只蚊子啊 2018-10-31 16:42
    关注

    ch += 32 :+= 是java语言规定的运算符,java编译器会对他进行特殊处理,进行了隐式转换,所以可以正确编译。
    ch = ch+32: 运算时会自动提升表达式的类型 结果会是int 在赋予char 所以需要强制转化,也即是ch = (char)(ch+ 32);

    一个简单的记忆方法:
    char 两个字节,
    int 四个字节,
    两者相加取大者。
    所以(ch+32) 这个表达式的类型是 int 类型,
    而你的 ch 是char 类型,把大的数据类型赋值给较小的要强制转换。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集