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 );
}
}