Java对比C/C++的强制类型转换与运算符

对于int 和long和double

这些不同数字类型的变量之间赋值,表示范围更小的类型能隐式转换成范围更大的类型,反之则不能。

对于int 与 boolean

boolean布尔型变量其值只有true与false,所以与int算是毫不相干的俩种类型,不能相互赋值。

对于int与byte

要注意byte表示的范围是-128~+127。

数值提升

假如int 与long俩个类型的变量做运算时,结果是long类型。若非要是int类型就要进行强制转换。

byte与byte short与short运算

对于这俩种比4字节小的类型,运算时会提升为4字节的int在运算。否则进行强制转换。因为在计算机的CPU里都是按4字节为单位进行运算。

int与String之间

int转String
int num=10;
//方法一
string str=num+"";
//方法二
String str2=String.valueof(num);

string转int
String str="100”;
int num=Integer.parsrint(str);

运算符

小案例 -10%3 结果为-1。
在Java中%运算可以对double进行。

在关系运算符里(+= -= == <= >=),左右表达式必须为Boolean类型。

在Java中&& || 遵循短路规则。
对于&&如果左表达式为false则整体表达式一定是false,右侧表达式无需计算。
对于||若左表达式为true右边无需计算。

对于&和|

如果操作数为boolean类型也表示逻辑运算,但是他们不支持短路求值。

对于移位操作符与C语言不同的是,Java中有无符号右移(>>>)最右侧不要了,最左侧补零
(肯定没有无符号左移操作符)

注意:

  1. 左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方.
  2. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.
  3. 由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替.
  4. 移动负数位或者移动位数过大都是没有意义的。
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值