## java的数据类型的隐式转换和强制转换

java的数据类型的隐式转换和强制转换

1111 111
二进制转换为10进制的公式
第N位的数去乘以2的第N次方## 标题
通俗来讲二进制是逢二进一
如果第三位数为1那么就会公式就为 1乘2的3次方
1 *1 1 =1
1 *2 1 =2
1 *2 2 = 4
1 2 3 = 8
1 2 4 = 16
1 2 5 = 32
1 2 6 = 64
2+4+8+16+32+64 = 127

short s1 = s1+1这句话有什么错误错在哪里?
首先1是一个int类型s1加1的时候会把java虚拟机会把这个加出来的数转换成int类型
而int类型的数值是比short大的所以这里的计算会造成精度的损失。所以会爆出需要强制转换的错误,可以改成 s1 = (short)(s1+1)

short s1+=1 这句话有没有错?
首先java对于+=这句话中产生了特殊的处理做了一个隐式的转换所以并不会报错可以编译成功
s1++;
在这里java对于++或者–的运算做出特殊的机制处理会做出一个隐式的转换所以可以执行成功。

&和&&的区别是什么
他们两个的输出结果是相同的
两个都是逻辑的连接符
但是一个&是没有阻断机制的,就算第一个不为真,那么在判断的时候他还是会去判断第二个为不为真。
&&
有阻断机制只要第一个不为真的时候那么他就没有必要再去检查第二个为不为真了;

B:同理||和|的区别?(学生自学)
int i = 1;
int b = 2;
int c = 0;
if(b2 || i(c=2)){
System.out.println((i2)+" "+(b2)+“c=”+c);
}else{
System.out.println(“没有正确判断”);
}
首先他们输出的结果是一样的但是
一个或者不管左边为真还是不为真都会去执行右边的代码,
两个||是如果左边为真那么他就不会执行右边的代码,只有不为真的时候才会去检验右边的会不会为真

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值