zoukankan      html  css  js  c++  java
  • char的一些小问题

    一句话,char,byte,short进行计算操作的时候,会先将它们转换成int类型,然后再进行计算。
    所以比如
    byte b1 = 3,b2 = 5;
    byte b3 = b1 + b2;
    会报错的,因为b1 + b2的结果是int类型,将这个结果赋值给byte类型的b3,需要进行强制转换。
    所以正确的表达是:
    byte b3 = (byte)(b1 + b2);

    另外,比如System.out.println('2'+'2');,
    这个语句的输出结果是100,因为char类型的2对应的数字是50.

    public class Main {
    public static void main(String[] args) {
    char c1 = 65;
    //c1 = c1+32; //报错,
    //因为c1是char类型2位,
    //32是int类型8位,所以c1+32最终的计算结果会是int类型,/
    //但是c1定义是char类型,所以会出错。
    //如果改成(char)(c1+32)就会没有问题

    //c1 =(char)(c1+32);没有问题
    c1 += 32;//也没问题,但是为什么呢
    System.out.println(c1);
    }
    

    }

    爱生活,爱码字

    我是匆匆、我曾喂自己半年酒。

    好好生活吧,有缘或许相见。

  • 相关阅读:
    观察者模式
    工厂模式
    单例模式
    代理模式
    策略模式
    Ioc容器
    Spring概述
    02:入门
    01:背景
    编译原理感悟
  • 原文地址:https://www.cnblogs.com/ccoonngg/p/14804376.html
Copyright © 2011-2022 走看看