java基础篇(一)java数据类型、转换、进制转换

一、java数据类型划分

1、数值型:

1.1. 整形

	byte     1字节   8位   -128~127
	1字节等于8bit,8位,每一位有两种可能,2的8次方256,表示正负,故取值范围-2的七次方至2的7次方

    short    2字节   16位  -32768~32767
	2字节等于16bit,16位,每一位有两种可能,2的16次方,表示正负,故取值范围-2的15次方至2的15次方,int,long以此类推
	
    int      4字节   32位  -2^31~2^31-1

    long     8字节   64位  2^63~2^63-1,必须以大写L或者小写l结尾

1.2.浮点类型:

    float    4字节   32位  -3.403E38 ~ 3.403E38
    单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。变量值末尾要以F或者f结尾
    同样4个字节,float比long值还大,是因为它是用占得的字节表示10的几次幂
    double   8字节   64位  -1.798E308 ~ 1.798E308
    双精度,精度是float的两倍。通常采用此类型。范围更大,精度更高

2、 字符型:

char     2字节   16位   0~65535
Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字母,一个汉字,或其他书面语的一个字符。

字符型变量的三种表现形式:
1. 字符常量是用单引号(‘ ’)括起来的单个字符。例如:char c1 = 'a'; char c2 
= '中'; char c3 = '9';
2. Java中还允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量。
例如:char c3 = ‘\n’; // '\n'表示换行符
3. 直接使用 Unicode 值来表示字符型常量:‘\uXXXX’。其中,XXXX代表
一个十六进制整数。如:\u000a 表示 \n。

3、布尔型:

 boolean  true    false

4、引用类型:

字符串 String、 类 class 、枚举 enum、接口interface、数组array

二、基本数据类型之间的转换

1、自动类型转换:范围小→范围大

byte→short→int→long→float→double;

char→int→long→float→double          

2、强制类型转换:范围大→范围小

需要加强制转换符

3、练习

/*
基本数据类型之间的运算规则:

前提:这里讨论只是7种基本数据类型变量间的运算。不包含boolean类型的。

1. 自动类型提升:
    结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
	byte 、char 、short --> int --> long --> float --> double 

	特别的:当byte、char、short三种类型的变量做运算时,结果为int型
	
2. 强制类型转换:见VariableTest3.java


说明:此时的容量大小指的是,表示数的范围的大和小。比如:float容量要大于long的容量
*/
class VariableTest2 {
	public static void main(String[] args) {
		
		byte b1 = 2;
		int i1 = 129;
		//编译不通过
		//byte b2 = b1 + i1;
		int i2 = b1 + i1;
		long l1 = b1 + i1;
		System.out.println(i2);

		float f = b1 + i1;
		System.out.println(f);

		short s1 = 123;
		double d1 = s1;
		System.out.println(d1);//123.0

		//***************特别地*********************
		char c1 = 'a';//97
		int i3 = 10;
		int i4 = c1 + i3;
		System.out.println(i4);

		short s2 = 10;
		//char c2  = c1 + s2;//编译不通过

		byte b2 = 10;
		//char c3 = c1 + b2;//编译不通过

		//short s3 = b2 + s2;//编译不通过

		//short s4 = b1 + b2;//编译不通过
		//****************************************

	}
}
/*
强制类型转换:自动类型提升运算的逆运算。
1.需要使用强转符:()
2.注意点:强制类型转换,可能导致精度损失。



*/
class VariableTest3 {
	public static void main(String[] args) {
		
		double d1 = 12.9;
		//精度损失举例1
		int i1 = (int)d1;//截断操作
		System.out.println(i1);//12
		
		//没有精度损失
		long l1 = 123;
		short s2 = (short)l1;
		
		//精度损失举例2
		int i2 = 128;
		byte b = (byte)i2;
		System.out.println(b);//-128

	}
}

class VariableTest4 {
	public static void main(String[] args) {
		
		//1.编码情况1:
		long l = 123213;
		System.out.println(l);//int自动提升为long型,所以不用加L或者l
		//编译失败:过大的整数
		//long l1 = 21332423235234123;
		long l1 = 21332423235234123L;


		//****************
		//编译失败
		//float f1 = 12.3;//默认12.3是double,double转float报错
		float f1 = (float)12.3;
		//2.编码情况2:
		//整型常量,默认类型为int型
		//浮点型常量,默认类型为double型
		byte b = 12;
		//byte b1 = b + 1;//编译失败
		int b1 = b + 1;
		//float f1 = b + 12.3;//编译失败
		double f1 = b + 12.3;
	}
}

/*
String类型变量的使用
1. String属于引用数据类型,翻译为:字符串
2. 声明String类型变量时,使用一对""
3. String可以和8种基本数据类型变量做运算,且运算只能是连接运算:+
4. 运算的结果仍然是String类型

*/
class StringTest {
	public static void main(String[] args) {
		
		String s1 = "Hello World!";

		System.out.println(s1);

		String s2 = "a";
		String s3 = "";

		//char c = '';//编译不通过

		//***********************
		int number = 1001;
		String numberStr = "学号:";
		String info = numberStr + number;// +:连接运算
		boolean b1 = true;
		String info1 = info + b1;// +:连接运算
		System.out.println(info1);

		//***********************
		//练习1
		char c = 'a';//97   A:65
		int num = 10;
		String str = "hello";
		System.out.println(c + num + str);//107hello
		System.out.println(c + str + num);//ahello10
		System.out.println(c + (num + str));//a10hello
		System.out.println((c + num) + str);//107hello
		System.out.println(str + num + c);//hello10a

		//练习2
		//*	*
		System.out.println("*	*"); //输出*	*
		System.out.println('*' + '\t' + '*');//输出93, char类型加法运算
		System.out.println('*' + "\t" + '*');//输出*	*,"\t"string类型表示连接
		System.out.println('*' + '\t' + "*");//输出51*,第一个加好表示加法第二个连接
		System.out.println('*' + ('\t' + "*"));//输出*	*

		//练习3
		String str1 = 4; //判断对错:no
		String str2 = 3.5f + “”; //判断str2对错:yes
		System.out.println(str2); //输出:”3.5”
		System.out .println(3+4+“Hello!); //输出:7Hello!
		System.out.println(“Hello!+3+4); //输出:Hello!34
		System.out.println(‘a’+1+“Hello!); //输出:98Hello!
		System.out.println(“Hello”+‘a’+1); //输出:Helloa1
		
		//练习4
		1short s = 5;
		s = s-2; //判断:no,int
		2byte b = 3;
		b = b + 4; //判断:no int
		b = (byte)(b+4); //判断:yes
		3char c = ‘a’;
		int i = 5;
		float d = .314F;
		double result = c+i+d; //判断:yes
		4byte b = 5;
		short s = 3;
		short t = s + b; //判断:no ,int
		
		//***********************

		//String str1 = 123;//编译不通过
		String str1 = 123 + "";
		System.out.println(str1);//"123"
		
		//int num1 = str1;
		//int num1 = (int)str1;编译不通过

		int num1 = Integer.parseInt(str1);
		System.out.println(num1);//123
	}
}

三、进制转换

对于整数,有四种表示方式:

  1. 二进制(binary):0,1 ,满2进1.以0b或0B开头。
  2. 十进制(decimal):0-9 ,满10进1。
  3. 八进制(octal):0-7 ,满8进1. 以数字0开头表示。
  4. 十六进制(hex):0-9及A-F,满16进1. 以0x或0X开头表示。此处的A-F不区分大小写。
    如:0x21AF +1= 0X21B0

1、二进制转10进制

  • Java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位;
  • 当是long类型时,二进制默认占64位,第64位是符号位
  • 二进制的整数有如下三种形式:
  1. 原码:直接将一个数值换成二进制数。最高位是符号位
  2. 负数的反码:是对原码按位取反,只是最高位(符号位)确定为1。
  3. 负数的补码:其反码加1。
  4. 计算机以二进制补码的形式保存所有的整数。
  5. 正数的原码、反码、补码都相同
  6. 负数的补码是其反码+1
    在这里插入图片描述
  • 最高位为符号位:0:正数,1:负数
  • 00001110转换为10进制为:1 * 2^3 + 1 * 2^2 + 1* 2^1 = 14
    在这里插入图片描述
    10111011未知负数补码-1变为10111010,除符号位取反11000101
    计算:2^1+ 2^3+ 2^7= -69
    在这里插入图片描述

2、 十进制转二进制

在这里插入图片描述

3、二进制转八进制和十六进制

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java范例开发大全(全书源程序),目录如下: 第1篇  Java编程基础 第1章  Java开发环境的搭建(教学视频:9分钟) 2 1.1  理解Java 2 1.2  搭建Java所需环境 3 1.2.1  下载JDK 3 1.2.2  安装JDK 4 1.2.3  配置环境 5 1.2.4  测试JDK配置是否成功 7 实例1  开发第一个Java程序 7 第2章  Java基础类型与运算符 实例2  自动提升 9 实例3  自动转换 10 实例4  常用基础类型之强转换 11 2.2  运算符 12 实例5  算术运算符 12 实例6  关系运算符 13 实例7  逻辑运算符 14 实例8  位运算符 15 实例9  移位运算符 16 实例10  转型运算符 17 2.3  其他形式 18 实例11  常量与变量 18 实例12  各种转换 19 实例13  Java中的与移位运算符 22 第3章  条件控语句(教学视频:75分钟) 26 3.1  if控语句 26 实例14  判断输入的年份是否为闰年 26 实例15  抽奖活动 27 3.2  for语句 28 实例16  小九九乘法表 28 实例17  如何列出素数 29 实例18  Java中的递归 31 实例19  男生女生各多少人 32 实例20  求水仙花数 34 实例21  求任意一个正数的阶乘 35 实例22  求n的n次方 35 实例23  利用for循环输出几何图形 36 实例24  杨辉三角 38 3.3  while语句 39 实例25  求1到100之间的和 39 实例26  存上100元需要多少天 40 实例27  输出100之间的所有偶数 41 实例28  如何判断回文数字 42 3.4  do…while语句 43 实例29  输出100之间的所有奇数 44 实例30  求最大的随机数 44 3.5  switch语句 45 实例31  判断字母分类 46 实例32  优良及差 47 实例33  打印任意一年日历 48 实例34  一年四季的划分 51 第2篇  Java数据处理 第4章  异常处理(教学视频:62分钟) 54 4.1  编译时异常 54 实例35  除0发生的算术异常(ArithmeticException) 54 实例36  数组下标越界异常(ArrayIndexOutOfBoundsException) 55 实例37  数组元素类型不匹配异常(ArrayStoreException) 56 实例38  强类型转换异常(ClassCastException) 56 实例39  索引越界异常(IndexOutOfBoundsException) 57 实例40  空指针异常(NullPointerException) 58 实例41  数字格式转换异常(NumberFornatException) 59 实例42  字符串索引越界异常(StringIndexOutBounds) 60 实例43  操作错误(UnsupportedOperationException) 60 4.2  运行时异常 61 实例44  找不到指定类时发生的异常(ClassNotFoundException) 62 实例45  请求的方法不存在(NoSuchMethodException) 63 4.3  try…catch捕获异常 65 实例46  try…catch捕获异常的实例 66 实例47  try…catch…finally捕获异常的实例 67 实例48  try…catch嵌套捕获异常的实例 68 4.4  throws声明异常 69 实例49  throws声明异常实例一 69 实例50  throws声明异常实例二 70 4.5  throw抛出异常 72 实例51  throw抛出异常实例一 72 实例52  throw抛出异常实例二 73 4.6  自定义异常 74 实例53  自定义异常实例一 74 实例54  自定义异常实例二 75 第5章  数组(教学视频:98分钟) 78 5.1  一维数组 78 实例55  一维数组的创建与使用 78 实例56  按相反的顺序输出 79 实例57  奇偶分组 80 实例58  找宝 81 实例59  寻找最小数 82 实例60  我的位置在哪里 83 实例61  复数组 85 实例62  插入新元素 86 实例63  数组的合并 87 实例64  去除重复元素 88 实例65  数组求和计算 90 实例66  求最大值、最小值和平均值 91 5.2  二维数组 92 实例67  二维数组的创建与使用 92 实例68  矩阵转置 93 实例69  奇数阶幻

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值