public class Test2_14 {
public static void main(String args[]){
/*
* java数据类型转换
* 小类型向大类型的转换会自动完成,这种转换叫“隐式类型转换”
* 转换规则:符号位自动扩展,负数补1,正数补0
* byte->short->int->long->float->double
* int和char在某些情况下可以转换
* 整数到浮点数转换可能会损失精度,要注意
*/
//损失精度的例子
int a=-2;
long b=a;
System.out.println(Integer.toBinaryString(a));
System.out.println(Long.toBinaryString(b));
//int转float丢失精度
int i=0x1000001;
float f=i;
//验证一下0x1000001是否等于十进制的16777217
System.out.println(Integer.toHexString(16777217));
System.out.println(Integer.toBinaryString(i)+":"+i);
System.out.println(Integer.toBinaryString(16777217)+":"+i);
System.out.println(Integer.toBinaryString((int)f)+":"+f);
}
}
大数据向小数据转换例子
public class Test2_16 {
/*
* 强制类型转换要注意数据边界风险
*/
public static void main(String args[]){
byte a=2;
System.out.println((byte)(a+3));//byte与int相加,最后强转为byte型,结果为byte(5)
//强转丢失数据的例子
int b=129;
System.out.println(Integer.toBinaryString(b));//10000001
System.out.println((byte)b);//-127
/*
* 下面来看看int129怎么变成byte-127的
* 由于int129对应二进制码为00000000000000000000000010000001被强制转化为byte型得到10000001
* 对于byte型最高位为1表示负数,负数是以补码存储的,那么首先确定10000001是一个负数
* 在补码运算中,正数与负数的规则是:取反再加1
* 那么先取反10000001->01111110
* 再加1 01111110->01111111
* 01111111->十进制的127,由于确定了是负数,所以结果为十进制的-127
*/
}
}
运行结果:
5
10000001
-127
int类型与char类型转换
public class Test2_17 {
public static void main(String args[]){
//int与char型在赋值时可以自动切换
char a=65;//由于a是char型,对应unicode码中的字符A,所以输出为A
int b='B';//字符B对应unicode码中的66,由于b为int型,所以输出为66
System.out.println(a+":"+b);
System.out.println(a+b);//由于java默认采用int类型,则相当于65+66=131
System.out.println((char)(1+(char)b));//char(int1+char66)->char(int67)->char(67)->C
}
}
- 相关文章
- for循环起名,多循环跳出之break
- java数据类型
- java数组定义/赋值/初始化
- java中栈,堆,方法区,栈帧
- java数据类型转换
- java算术运算符
- java逻辑运算符
- java位运算
- if与switch的区别
- java for循环语法
- 热门文章
- win7中将文件拷贝到虚拟机linux下
- phpexcel设置行高及列宽,背景颜色,
- rabbitmq无法启动
- intellij idea不显示git push按钮
- php7中使用mongodb的aggregate进行
- laravel页面静态化的方法
- centos7.4 64位下swoole安装及配置
- navicate连接mycat报1184错误
- curl设置超时不起作用(CURLOPT_TIM
- devops-jenkins容器为pending状态
- 好评文章
- phpexcel设置行高及列宽,背景颜色,
- php7中使用mongodb的aggregate进行
- intellij idea打开文件所在文件夹
- windows下使用MongoDB Compass Com
- win7中将文件拷贝到虚拟机linux下
- laravel 中悲观锁 & 乐观锁的使用
- 单点登录sso原理及php实现方式及de
- navicate连接mycat报1184错误
- rabbitmq无法启动
- laravel整合dingo/api方法步骤:jwt
- 我的项目
- 【github】www.github.com/hurong241
- 【码云】gitee.com/hu_rong/projects
- 【docker hub】hub.docker.com/repositories/hurong241
- 【packagist】packagist.org/users/hurong241/packages
- 站点信息
- 建站时间:2011年
- 文章数:623篇
- 浏览数:1357698