3-21节编程问题

来源:3-21 编程练习

不想睡觉的橘子君

2019-08-07 19:00:44

我的代码如下

public class TypeExchange {

    public static void main(String[] args) {

int n = 98;

// 定义一个整型变量n,值为98

        char ch;

        ch = n;

        System.out.println(ch);

        //定义一个char类型的变量ch,将变量n赋值给ch,然后输出ch的值

long var = 190000000;

System.out.println(var);

//定义一个长整型变量var,值为190000000,并输出

double d = var;

//定义一个double类型的变量d,将变量var的值赋值给d

}

}

第一个问题,会存在不能将int型赋值给char型变量的问题,不知道为什么char类型的变量ch没有输出ASC码98对应的字母


第二个问题,在将长整形变量var初始化的时候使用科学计数法    long var = 1.9e8;    会出错,而直接初始化为190000000就没有问题

写回答

1回答

好帮手慕小班

2019-08-07

        同学你好,1、这里不是说不能将int型赋值给char型变量的问题,而是将一个int类型的变量赋值给char类型,需要强转,原因是:

        首先我们来看一下int和char所能代表的数据范围: int   4字节  -2^31~2^31-1也就是-2147483648到2147483647,而char   2字节   是一个单一的16位字符 ,取值范围是从0到65535!所以一个int类型的值转为char类型的值,需要强转!

        而强转是要以char  ch =(char)n; 这样的形式来写呐!

http://img.mukewang.com/climg/5d4ab7f60001b04805330165.jpg

        2、在java中科学计数法是用来表示浮点型数据,1.9e8默认是double类型的数据,将这个double类型值将赋值给long类型,是需要强转的!所以这里建议使用long var = 190000000L;来为var声明赋值!

         如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

1

0 学习 · 11489 问题

查看课程