int 不能转换为short

原创 2013年12月02日 20:32:36

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




相关文章推荐

int转为short的问题以及类型转换、按位与、相等优先级

今天做实验遇到了这个问题,实在

java Byte和各数据类型(short,int,long,float,double)之间的转换

在Java的网络编程中传输的经常是byte数组,但我们实际中使用的数据类型可能是任一种数据类型,这就需要在它们之间相互转换,转换的核心在于将其他类型的数据的每一位转换成byte类型的数据。下面给出相关...

Java中byte数组与short,int,char,long,float,double之间的转换

某些场景下我们接受和发送的数据都是byte数组,例如在socket传输中,发送、者接收的数据都是 byte数组,或者是自定义传输协议或者文件格式中,为了保证数据安全、节省流量服务端需要对数据进行先加密...
  • FX_SKY
  • FX_SKY
  • 2014年02月28日 11:20
  • 2413

android中byte[] short[] int[] long[]数组数据转换

import java.nio.ByteOrder; public class BytesTransUtils { private String TAG = "BytesTransUt...
  • acm2008
  • acm2008
  • 2015年04月16日 16:25
  • 677

java基础-各种类型及转换(int,string,char,short,date)

java数据类型和c/c++相似,但java是面向对象
  • chzayi
  • chzayi
  • 2014年11月07日 13:20
  • 2013

java中long,int,short与byte数组之间的转换

转的两篇文章的实现都很全面里面有些细节不同,现在项目进度紧张.先保留以后整理. 文章一:http://hi.baidu.com/menglinxi_a/item/35a43d5d50e79212abf...

java byte数组与int,long,short,byte转换

public class DataTypeChangeHelper { /** * 将一个单字节的byte转换成32位的int * * @param b * ...
  • cpcpc
  • cpcpc
  • 2011年12月27日 13:32
  • 7918

java中byte数组与int,long,short间的转换

package com.util;      /**   *    *    * 文件名称: com.born.util.ByteUtil.java   * 文件描述: byte转换工具 ...

short、int、long与byte之间的转换工具类

/**  * 各基础类型与byte之间的转换  * @author shanl  *  */ public class Utility { /** * 将short转成byte[2]...

int short型类型转换

变量值的存储 变量被定义以后,系统在运行时会为该变量分配一个相应大小的存储空间,称为存储单元。 给变量赋值后,该变量对应的存储单元中会存放该值,这个值称为变量的值。 那么变量的值在变量的存储单元...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:int 不能转换为short
举报原因:
原因补充:

(最多只允许输入30个字)