您的位置:首页 > 编程语言 > Java开发

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

2016-01-20 11:42 501 查看
本节主要掌握,Java之中大类型向小类型转换转换中需要注意的问题,即隐式转换与显示转换。其次,需要熟悉的方法有,Math.round( )、Math.sqrt( )、Byte.parseByte( )、Integer.parseInt( )、Integer.toHexString( )、Integer.toBinaryString( )、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-->long-->float-->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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: