注册 登录
编程论坛 JAVA论坛

关于强制转化的问题

lousang 发布于 2018-03-17 16:06, 1801 次点击
package Convert;

public class Convert {
    public static void main(String[] args) {
        int i=1,j=1,i1,i2;
        float f1=0.1f;
        float f2=123;
        long l1=12345678,l2=8888888888l;
        double d1=2e20,d2=124;
        byte b1=1,b2=2,b3=127;
        j=j+10;
        i1=i/10;
        i2=(int)(i*0.1);
        char c1='a',c2=125;
        byte b=(byte)(b1-b2);
        char c=(char)(c1+c2-1);
        float f3=f1+f2;
        float f4=(float)(f1+f2*0.1);
        double d=d1*i+j;
        float f=(float)(d1*5+d2);
        System.out.println("j="+j);
        System.out.println("i1="+i1);
        System.out.println("i2="+i2);
        System.out.println("b="+b);
        System.out.println("c="+c);
        System.out.println("f3="+f3);
        System.out.println("f4="+f4);
        System.out.println("d="+d);
        System.out.println("f="+f);
    }
}


输出为:
j=11
i1=0
i2=0
b=-1
c=?
f3=123.1
f4=12.4
d=2.0E20
f=1.0E21

请问为什么c的输出为?
5 回复
#2
疯狂的小a2018-03-17 18:34
程序代码:
package com.xiaoa.demo;

public class Convert {
    public static void main(String[] args) {
        int i = 1, j = 1, i1, i2;
        float f1 = 0.1f;
        float f2 = 123;
        long l1 = 12345678, l2 = 8888888888l;
        double d1 = 2e20, d2 = 124;
        byte b1 = 1, b2 = 2, b3 = 127;
        j = j + 10;
        i1 = i / 10;
        i2 = (int) (i * 0.1);
        char c1 = 'a', c2 = 125;
        byte b = (byte) (b1 - b2);
        char c = (char) (c1 + c2 - 1);
        float f3 = f1 + f2;
        float f4 = (float) (f1 + f2 * 0.1);
        double d = d1 * i + j;
        float f = (float) (d1 * 5 + d2);
        System.out.println("j=" + j);
        System.out.println("i1=" + i1);
        System.out.println("i2=" + i2);
        System.out.println("b=" + b);
        System.out.println(c1 + c2 -1);
        //因为char的字符范围(-127~128)内找不到221,所以用?代替了
        System.out.println((char)(126));
        System.out.println((char)(127));
        System.out.println((char)(128));
        System.out.println("c=" + c);
        System.out.println("f3=" + f3);
        System.out.println("f4=" + f4);
        System.out.println("d=" + d);
        System.out.println("f=" + f);
    }
}
#3
lousang2018-03-17 18:59
回复 2楼 疯狂的小a
是可以随意用任何符号代替还是只能用?
#4
疯狂的小a2018-03-17 19:06
回复 3楼 lousang
环境不同,显示不同.反正就是乱码
#5
桃花岛主丶2018-03-20 01:03
不同格式的编码显示的不同   
#6
lousang2018-03-23 13:34
好的 谢谢大家!我知道了
1