2021-10-28

JAVA的类型转换运算符

Java中的常量
 十六进制整型常量:以十六进制表示时,需以0x或0X开头,如0xff,0X9A。
 八进制整型常量:八进制必须以0开头,如0123,034。
 长整型:长整型必须以L作结尾,如9L,342L。
 浮点数常量:由于小数常量的默认类型是double型,所以float类型的后面一定要加f(F)。同样带小数的变量默认为double类型。
如:float f;
  f=1.3f;//必须声明f。
 字符常量:字符型常量需用两个单引号括起来(注意字符串常量是用两个双引号括起来)。Java中的字符占两个字节。一些常用的转义字符:
 1.\r表示接受键盘输入,相当于按下了回车键;
 2.\n表示换行;
 3.\t表示制表符,相当于Table键;
 4.\b表示退格键,相当于Back Space键;
 5.‘表示单引号;
 6.’'表示双引号;
 7.\表示一个斜杠\。
 1.Java基本数据类型的转换
  基本数据类型:byte short int long float double char boolean
 2.基本数据类型精度的排序小到大
  byte short  char int long float double
 3.boolean不参与基本数据类型转换的。这里我们所说的"大"与"小",并不是指占用字节的多少,而是指表示值的范围的大小。
 4.简单类型数据间的转换,有两种方式:自动数据类型转换和强制数据类型转换,通常发生在表达式中或方法的参数传递时。
  自动数据类型转换:较"小"数据与一个较"大"的数据一起运算时,系统将自动将"小"数据转换成"大"数据,再进行运算。而在方法调用时,实际参数较"小",而被调用的方法的形式参数数据又较"大"时(若有匹配的,当然会直接调用匹配的方法),系统也将自动将"小"数据转换成"大"数据,再进行方法的调用,自然,对于多个同名的重载方法,会转换成最"接近"的"大"数据并进行调用。
  强制数据类型转换:将"大"数据转换为"小"数据时,你可以使用强制类型转换。即你必须采用下面这种语句格式: 低类型 变量名称 = (低)高[值/变量];可以想象,这种转换肯定可能会导致溢出或精度的下降。
 5.char与int转换

public class DataTape{
	public static void main(String args[]){
		char charnum='我';
		int intnum=charnum;
		System.out.println("intnum=="+intnum);//自动类型转换
		int intnum2=25105;
		char charnum2=(char)intnum2;
		System.out.println("charnum2=="+charnum2);//强制类型转换
	}
}

在这里插入图片描述
6.int转换成byte
  byte转换成int—隐式数据类型转换【自动数据类型转换】
  int转换成byte—显式数据类型转换【强制数据类型转换】
  当整数int转换成byte时,int取值正数超过byte范围以后,会从byte最小值向前推进计算。
  当整数int转换成byte时,int取值负数超过byte范围以后,会从byte最大值向后推进计算。在这里插入图片描述

public class DataTape{
	public static void main(String args[]){
		byte bytenum=120;
		int intnum=bytenum;
		System.out.println("intnum=="+intnum);//自动类型转换
		int intnum2=129;
		byte bytenum2=(byte)intnum2;
		System.out.println("bytenum2=="+bytenum2);//强制类型转换
		int intnum3=-200;
		byte bytenum3=(byte)intnum3;
		System.out.println("bytenum3=="+bytenum3);//强制类型转换
	}
}

在这里插入图片描述
2.java中的运算符
Java的运算符,分为四类:
  算数运算符、关系运算符、逻辑运算符、位运算符。
    算数运算符:+ - * / % ++ –
    关系运算符:== != > >= < <=
    逻辑运算符:&& || ! ^ & |
    位运算符:& | ~ ^ >> << >>>
  类外还有赋值运算符 = ,位运算符需要将数据转换成2进制【00101010】数据进行运算.
  掌握10进制转2进制 :短除法[笨] 8421码转化法
   1024 512 256 128 64 32 16 8 4 2 1
   7=4+2+1— 0 0 0 0 0 0 0 0 1 1 1 — 00000111
   13=8+4+1-- 0 0 0 0 0 0 0 1 1 0 1 — 00001101
  负数的2进制:实质上补码表示
   正数的补码是本身
   负数的补码是反码+1
  反码的表示方法是:
   正数的反码是其本身【原码】
   负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
  原码就是符号位加上真值的绝对值,即用第一位表示符号, 其余位表示值.
   -7–7的2进制–00000111–[-7的源码]10000111—[-7的反码]11111000–[-7的补码]11111001
    | 按位或 相同位只要一个为1即为1。 【7 | -7】 【01–1 10–1 11-1】
   00000111
   11111001
   11111111
  & 按位与 相同1为1,不同为0。【7 & -7】【11–1 00–1 01-0 10-0】
   00000111
   11111001
   00000001
  ^ 按位异或 相同位不同则为1,相同则为0。【7 ^ -7】【01–1 10–1 11–0 00–0】
   00000111
   11111001
   11111110
  ~取反 0和1全部取反
  <<左移位 2进制整体向左移动指定的位数 7<<2
  >>右移 2进制整体向右移动指定的位数 7>>2
8+4+2+1=15,加上0正好是16进制,4位二进制数正好对应一位16进制数,所以可以方便地进行进制间的转换。
 比如(1010110)2换成16进制:先补齐成 0101 0110,(0101)2等于80+41+20+11=(5)16(01102=80+41+21+10=(6)16,所以(1010110)2=(56)16。所以10进制,很简单,(56)16=(5*161+6*160)10=(80+6)10=(86)10。再如(11010100)2换成10进制: 如果照传统的算,很麻烦,但将2进制换成16进制很容易,同理,421代表4+2+1=7,加上0就是8进制,也可以很方便地进行2进制、8进制和10进制的转换。
算数运算代码演示:

public class SuanShu{
	public static void main(String args[]){
		int num1=10;
		int num2=3;
		System.out.println(num1+"+"+num2+"="+(num1+num2));
		System.out.println(num1+"-"+num2+"="+(num1-num2));
		System.out.println(num1+"*"+num2+"="+(num1*num2));
		System.out.println(num1+"/"+num2+"="+(num1/num2));
		System.out.println(num1+"%"+num2+"="+(num1%num2));
	}
}

在这里插入图片描述

public class SuanShu{
	public static void main(String args[]){
		int num1=10;
		int num2=10;
		int num3=10;
		int num4=10;
		System.out.println(num1++);//10
		System.out.println(num1);//11
		System.out.println(++num2);//11
		System.out.println(num2);//11
		System.out.println(num3--);//10
		System.out.println(num3);//9
		System.out.println(--num4);//9
		System.out.println(num4);//9
	}
}

在这里插入图片描述
关系运算代码演示:

public class SuanShu{
	public static void main(String args[]){
		int a=15;
		int b=20;
		System.out.println(a+">"+b+"=="+(a>b));
		System.out.println(a+"<"+b+"=="+(a<b));
		System.out.println(a+">="+b+"=="+(a>=b));
		System.out.println(a+"<="+b+"=="+(a<=b));
		System.out.println(a+"=="+b+"=="+(a==b));
		System.out.println(a+"!="+b+"=="+(a!=b));	
	}
}

在这里插入图片描述
逻辑运算符代码演示:

public class SuanShu{
	public static void main(String args[]){
		int a=15;
		int b=20;
		System.out.println((a<b) || ((10/0)>1));
		System.out.println((a>b) && ((10/0)>1));
		System.out.println(!(a>b) );	
	}
}

在这里插入图片描述
三元运算符 【(判断)? 数据值1 :数据值2】
 先判断,判断结果为true,整运算表达式的结果取数据值1
 判断结果为false,整运算表达式的结果取数据值2
三元运算代码演示:

public class SuanShu{
	public static void main(String args[]){
		int a=15;
		int b=20;
		char charnum=(a>b) ? 'T' : 'F';
		System.out.println("charnum=="+charnum );
	}
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值