int 不能转换为short

short s=3;

s=s+2;

s+=2

有什么区别?

s=s+2编译错误,s+2转换为int类型 再赋给short会丢失精度,所以不能赋值给short类型的s

s+=2直接将2以short类型计算和;

在项目中我不常用以下逻辑运算符,小记一下

^为异或:true^true=false ;false^false=false;false^true=true;

&和&&的区别

&无论左边是true还是false,右边都运算

&&如果左边是false,右边不用运算

|:两边都参与运算

||:左边为true右边不运算;

位运算符:(二进制运算)

3<<2=12;

3的二进制向左移动两位后面补0:3*2*2往左移移动几就是几的几次幂

6>>2=1

6的二进制向右移,超出两位舍弃,前面多出两位补0;6/4 舍弃小数部分取整为1

<<:乘以2的移动位数次幂

<<:除以2的移动位数次幂取整

>>最高位补什么由原有数据的最高位值决定 如果最高位为0,右移后,用0补空位 如果最高位为1,右移后,用1补齐

>>>:无论最高位是什么,右移后,都补0

&运算(转换成二进制运算)

6&3=2

6的二进制:   110

3的二进制: &011    0为false 1为true

----------------------------------------------------------

   010的值为2

道理相同:6|5=7 ;6^5=3

~波浪线为取反码:~6+1=-6;

6^7^7=6(异或两次同一个数最后得自己)

第一次异或相当于加密,然后再异或一次就可恢复(加密算法相当复杂|、^、等各种复杂加密)

2*8怎样运算效率最高?

2*8可以把两位转换成二进制然后和乘法一样得到的二进制数据再转换成十进制=16

位运算 2*8相当于2乘以2的3次幂,2<<3 2的二进制数据向左边移动三位就可得出二进制转换成十进制=16(位运算效率最高)

小技巧:将60转换成16进制数 先将16转换成2进制 取最后四位 通过&15 的结果 再(>>>)右移4位


switch case

switch(x)

{

default:

System.out.println("AA");

//break;


case :3

System.out.println("AA");

break;

case :4

System.out.println("abc");

break;


}

x=1;

default写在前面,首先case3、case4 再执行default(没有break)但没遇到break和结尾{号 ,然后继续执行default后面的所有代码,不再考虑case直到遇到break;

Double 取两位小数

Double a = 2.1234567; 
Math.Round(a,2);
 
 

Double保留小数点位数(带四舍五入)

程序代码 Double salary1 = 10000.0; Double salary2 = 10000.12345; Double salary3 = 10000.1289; Int salary4 = 10000; string salary5 = "10000"; string salary6 = "10000.12345"; string salary7 = "10000.1289"

Convert.ToDouble(salary1).ToString("0.00");//保留小数点后两位,结果为10000.00 Convert.ToDouble(salary2).ToString("0.00");//保留小数点后两位,结果为10000.12 Convert.ToDouble(salary3).ToString("0.00");//保留小数点后两位,结果为10000.13 Convert.ToDouble(salary4).ToString("0.00");//保留小数点后两位,结果为10000.00 Convert.ToDouble(salary5).ToString("0.00");//保留小数点后两位,结果为10000.00 Convert.ToDouble(salary6).ToString("0.00");//保留小数点后两位,结果为10000.12 Convert.ToDouble(salary7).ToString("0.00");//保留小数点后两位,结果为10000.13  


w:for(int x=0;x<3;i++)

{

   p: for(int y=0;y<3;y++)

{

 break w;

}

}

给for循环起名字,break直接跳出w




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值