运算与赋值

来源:互联网 发布:啊沁的淘宝店 编辑:程序博客网 时间:2024/06/05 17:40

整数赋值

整数输入时默认为int

byte  a=1;yes

byte  a=128; no,超出byte范围

int        a=0b10101; yes

int        a=0xff;     yes

long a=123456789123; no,超出int范围

long a=123456789123; yes

byte、short  ------>赋值时如果int在其表示范围内(即不影响精度)时无数据损失可直接赋值,否则强制类型转换

int------->int直接赋值,小类型自动转换,否则强制转换

long------>输入时为int,需要强制类型转换才能成功输入



浮点数赋值

浮点数输入时默认格式为double

float      a = 1         yes

float     a = 1.1      no,double不能赋给float

float      a = 1.1lyes

double   a = 1.1 Yes

浮点数与整数不同,其小数点后精度不同,即double不可能在float范围内,也就是说必须使用强制类型转换



输入数值

输入二进制数

x=-0b1010101001

x=-0B1010101001

输入八进制数

x=-017

x=077

输入十六进制数

x=0x77

x=0X77

输入二进制数时输入值为原码,数字符号另加。

由于其不能带符号位,所以位数最高为(类型大小-1)


运算

算数运算符:+   -   *   /     %

单目按位运算符:^    ~    |     &   <<   >>   >>>   

三目运算符:  ? :

bytea=2+2;  yse

数值 运算符 数值——>先将低级的转化为高级的,算出来,然后当做一个数参与其他运算

三目运算时,低级同样转化为高级

bytea=2;

a=a+2; no

byte i=1,j=1;

i=i+j;    no

变量 运算符 变量             先将低级的转化为高级的,然后进行运算,此时不支持范围内自动转化

或                        ——>

数值 运算符 变量             整数运算低于int的转为int,然后进行运算,其余在自己的模式下进行

三目运算时低级同样转化为高级,但支持范围内自动转化

另:& | ^三个同样可以用于逻辑运算中

赋值运算符:   +=      -=      *=      /=     %=

byte a =1;

a+=2+2;

这种运算符自带强制转化功能,即a=(byte)(a+(2+2));

等号后面的自带升级效果,先算再与原数相运算

单目运算符:++    --     -     (类型)

自己加一   减一   负号   强制转换   取地址   指针



其他注意事项

1、三目运算符

结合顺序从右边到左边(1>2?1:3>4?5:6;--->1>2?1:(3>4?5:6);)

其本身为普通运算符(相当于+),所以必须有一个存在价值,比如作为返回值或赋值号右边。

优先级仅仅大于赋值符号,(2+(1>2)?1:2--->2+(1>2)?1:2,此时问号前不为Boolean)

2、运算符优先级由高到低

()   (小括号)   

单目运算符 取非、按位取反(从右向左)(++ --  - (类型)!~)  >

算数运算符(从左向右)(+  -  *  /  %)  >

按位移动运算符(从右向左)( <<   >>   >>>  )  >

关系运算符(<  >  >=  <=  ==  !=)  >

按位的与、异或、或(&  ^  |)   >

逻辑的与、异或、或(&&  &、  ^  ||  |)   >

三目运算符(从右向左)(?:)>

赋值运算符(从左向右)(+= -= *= /= %=)


















原创粉丝点击