Java 入门 之 不同类型数据的输出与转换

本节主要掌握,Java之中大类型向小类型转换转换中需要注意的问题,即隐式转换与显示转换。其次,需要熟悉的方法有,Math.round( )、Math.sqrt( )、Byte.parseByte( )、Integer.parseInt( )、Integer.toHexString( )、Math.pow( )、Integer.toBinaryString( )、Long.toBinaryString( ) 。


  • 不同类型的数据联合输出,代码示例

package Type_Trans_Pack;
public class My_Class {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("sqrt(10)/(sqrt(20)-sqrt(5)) = " + Math.round(Math.sqrt(10)/(Math.sqrt(20)-Math.sqrt(5))));
}
}

  • Math.round 表示对小数点后面第一位数字,进行四舍五入操作。
  • System.out.println 可以连接不同类型的数据,进行一行输出。

例:

System.out.println("嗨!我的名字是" + name + “,我是第” + num + “号参赛选手!”);

  • Java 也不允许对变量重复定义。

例:

int a=9;
// int a; // 这一句代码会有红线显示,表示因重复定义而出错。


  • 字符转换整型

System.out.println(Byte.parseByte("108"));
System.out.println(Integer.parseInt("801"));

输出即为字符串对应的数字。

  • 数字进制转换

System.out.println(Integer.toHexString(16));
System.out.println(Integer.toBinaryString(32));

  • Java 默认整数运算的结果为整数,byte 和 short 类型变量在计算的时候,被计算机识别为 32 位(int)整型变量。

byte num = 3;

// byte val = 3+num; // 报错

  • Java 默认浮点数运算的结果 计算机默认为 double 类型

long a=9;
float b = 9.2f;
float c = b+a;
double d = b+a;

  • float 类型变量字长为 32 位,double 为 64 位
数据类型符号位指数位尾数位
float1238
double15211

由上可知,因为,尾数位和指数位的存在,所以,float精度小于int(31位),double精度小于long(63位)。


  • Java底层是用一个16位整数表示字符型数据的,占2个字节,该整数称为 Unicode 编码。

        System.out.println((char)65+":"+65); // 65 A ; 97 a
        System.out.println('\u4e2d'); // 中

  • 布尔类型数据的输出

        System.out.println(true);
        System.out.println(90>89);

  • 小类型数据项大类型数据转换

例:

byte-->short-->int-->float-->long-->double

由之前的预备知识可以了解到,int-->float 以及 long-->double 易丢失精度。

package Type_Pack;

import java.util.jar.Attributes.Name;

public class Type_Class {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		float num = (float)Math.pow(3,2);
		String Name = "张"+"大飞";
		System.out.println(Name);
		int numint = -2;
		long numlong = numint;
		System.out.println(numint);
		System.out.println(numlong);
		// int2float 二进制码最后2字节(8位)精度丢失
		int i = 0x10000010;
		float f = i;
		System.out.println(Integer.toBinaryString(i)+":"+i);
		System.out.println(Integer.toBinaryString((int)f)+":"+f);
		// long2double 二进制码最后11位精度丢失
		long lnum = 0x1000000000000010l; // 加上l至关重要 !!!
		double dnum = lnum;
		System.out.println(Long.toBinaryString(lnum));
		System.out.println(Long.toBinaryString((long)dnum));
		int src = 65;
		char dst = (char)src;
		System.out.println(dst);		
	}
}
注:

若,long lnum = 0x1000000000000010l; // 加上l至关重要 !!!,该段代码没有添加上“l”,则lnum的字长只能有32位,添上才允许出现64位。

输出:

张大飞
-2
-2
10000000000000000000000010000:268435472
10000000000000000000000000000:2.68435456E8
1000000000000000000000000000000000000000000000000000000010000
1000000000000000000000000000000000000000000000000000000000000
A

  • 大类型向小类型转换,也称强制转换,用字符类型加括号即可实现。

例:

        int src = 65;
        char dst = (char)src;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值