发表于: 2017-07-24 00:20:08

2 1124


问题:Float类型的浮点数用科学计数法来表示的时候,举个例子,在5.12E2中,指数位是2,尾数位是12;在计算机存储中float类型数值占32位,第一位是符号位,接下来的八位表示指数,再接下来的23位表示尾数,也就是说指数的取值正数范围是1-127,但是如下,怎么会报错了呢?指数才120。


一 今日完成:

《疯狂Java讲义》第三章 本章练习 1,2,3

练习1:定义学生、老师、教室三个类,为三个类编写文档注释,并使用javadoc工具来生成API文档。

作答截图:

 

2.使用8种基本数据类型声明变量,并使用不同方式为8种基本类型的变量赋值,熟悉每种数据类型的赋值规则和表示方式。

代码:

class EX3_2

{

         public static void main(String[] args)

         {

                   byte b1 = 0b0100;    //二进制

                   byte b2 = 04;    //八进制

                   byte b3 = 4;      //十进制

                   byte b4 = 0x4;  //十六进制

                  

                   short s1 = 0b0110;  //二进制

                   short s2 = 057;                   //八进制

                   short s3 = 400;                   //十进制

                   short s4 = 0x4F;        //十六进制

                   short s5 = b4;            //自动类型转换

 

                   int i1 = 0b11_0101_0011_0100;      //二进制

                   int i2 = 06743;           //八进制

                   int i3 = 99;        //十进制

                   int i4 = 0x4FA;           //十六进制

                   int i5 = s5;                  //自动类型转换

 

 

                   long l1 = 0b110L;      //二进制

                   long l2 = 057L;          //八进制

                   long l3 = 400L;          //十进制

                   long l4 = 0xA4FL;      //十六进制

                   long l5 = i5;                //自动类型转换

 

                   char c1 = 'A';             //单个字母

                   char c2 = '9';              //单个数字

                   char c3 = '';           //单个汉字

                   char c4 = '\r';             //转义字符

                   char c5 = '\u23af'; //Unicode

                   char c6 = 97;             //ASCII码值

                  

                   String str1 = "老大最帅";

 

                   byte b5 = (byte)s2;  //强制转换

                   short s6 = (short)i2;//强制转换

                   int i6 = (int)l1;  //强制转换

                   char c7 = (char)i3; //强制转换

 

                   float f1 = 3.14f;         //小数

                   float f2 = Float.POSITIVE_INFINITY;//正无穷大

                   float f3 = Float.NEGATIVE_INFINITY;//负无穷大

                   float f4 = Float.NaN;                  //非数

                   float f5 = (float)7758E3;  //科学计数法

 

                   double d1 = 3.1415926;//小数

                   double d2 = 7758.521E4;//科学计数法

                  

                   boolean boo1 = true;

                   boolean boo2 = false;

         }

}

3.在数值型的变量之间进行强制转换,包括低位向高位的自动转换、高位向低位的强制转换。

a 主要学习了强制转换的原理;

b 负数的转换:

代码:

class EX3_3

{

         public static void main(String[] args)

         {

                   //低位向高位的自动转换

                   byte b1 = 120;

                   short s1 = 500;

                   int i1 = 4_0000;

                   long l1 = 9_5623_4561L;

                   float f1 = 3.1415926f;

                   double d1 = 3.14E10;

 

                   short s2 = b1;

                   int i2 = s1;

                   long l2 = i1;

                   float f2 = l1;

                   double d2 = f1;

 

                   System.out.println("s2=" + s2 +";");

                   System.out.println("i2=" + i2 +";");

                   System.out.println("l2=" + l2 +";");

                   System.out.println("f2=" + f2 +";");

                   System.out.println("d2=" + d2 +";");

 

                   System.out.print('\n');

 

                   //高位向低位的强制转换

                   byte b3 = (byte)s1;

                   short s3 = (short)i1;

                   int i3 = (int)l1;

                   long l3 = (long)f1;

                   float f3 = (float)d1;

 

                   System.out.println("b3=" + b3 + ";");

                   System.out.println("s3=" + s3 + ";");

                   System.out.println("i3=" + i3 + ";");

                   System.out.println("l3=" + l3 + ";");

                   System.out.println("f3=" + f3 + ";");

         }

}

二 明日完成:

1 第三章的本章练习3

2 学习第四章的内容,不求速度,只求质量。



返回列表 返回列表
评论

    分享到