强制类型转换及运算符(2024.5.19)

强制类型转换

显示转换

int (数据类型)变量名

float pi = 3.1415926;

// pi 强制转换为 int 类型,并赋值给变量 num
int num = ( int ) pi ;
// 强转只是临时强转,本身的数据类型没有改变

隐示转换

若运算符两边的类型不匹配 , 并且没有进行显示指定类型。系统
会默认触发隐式的强转 , 强转规则如下 :
float    ➡   double   ⬅ long    unsigned    int    char,short

常见算术运算符

运算符 含义
+
两数相加
-
两数相减
*
两数相乘
/
两数相除,注意:除数不能为0
%
取模运算符(求余) ,要求两边的运算数必须为整数。
Tips:
/ 若两边的操作数都是整数,默认为整除,小数舍掉 .
% 要求两边的运算数必须为整数。否则,系统提示错误

关系运算符

运算符 含义

>    大于

>=  大于或等于

<    小于

<=  小于或等于

==  等于

!=   不等于

逻辑运算符

逻辑与 &&(短路与:第一个条件为假,则不成立)

条件1 && 条件2 

此条件要成立 ,条件1 条件2 都必须成立

逻辑与 可以对多个条件进行逻辑与操作:条件1 && 条件2 && 条件3 ...

逻辑或  ||(短路或:第一个条件为真,则为真)

条件1 || 条件2 此表达式要成立,只要有一个条件成立即可

逻辑非 !

 将假变真,将真变假

条件为真,结果为假;条件为假,结果为真

逻辑运算符结果:真为1,假为0

位运算符(对二进制位作操作,内存中存储补码)

按位与  &    表达式1 & 表达式2 全一为1,有零则0

0011
0101
0001

按位或  |     表达式1 | 表达式2 有一为1,全零则0

0011
0101
0111

按位异或 ^   表达式1 ^ 表达式2 相同为0,相异为一

0011
0101
0110

应用        交换两个数的值

        创建临时变量temp
        不允许创建临时变量情况下,交换两个数
        使用^运算符

a^a =0

a^a^b = b

a = a ^ b   ;

b = a ^b; //(a^b)^b=a

a = a ^ b;//a^(a^b)=b

 按位取反 ~ 0变1,1变0

左移运算符 << 右边补0,左边丢弃

num = -23; res = num >>2//左移两位

结论:左移n位相当于乘2的n次方

右移运算符 >>

逻辑右移(无符号数据)

高位补0,右边丢弃

算数右移(有符号数据)

低位丢弃,高位补符号位

结论;右移n位相当于除2的n次方

三目运算符(三个操作符)  

格式:条件表达式 ?表达式1 :表达式2;

含义:如果条件表达式成立,整个表达式的值为1,否则是表达式2

单目运算符:!,~

逗号运算符 ,  (逗号表达式优先级最低)

'表达式

,ret=表达式1,表达式2......表达式n

ret 输出最后一个表达式的结果

总结

! > 算数运算   > 关系运算   > 逻辑运算 >  赋值运算符         

位运算符


 

  • 26
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
拓展运算符(spread operator)在JavaScript中用三个连续的点(...)表示。它可以在函数调用、数组字面量和对象字面量中使用,用于展开可迭代对象(如数组、字符串、Map、Set等)。 在函数调用中,拓展运算符可以将一个数组展开为独立的参数传递给函数。例如: ```javascript function add(a, b, c) { return a + b + c; } const numbers = [1, 2, 3]; console.log(add(...numbers)); // 输出:6 ``` 在数组字面量中,拓展运算符可以将一个数组中的元素展开到另一个数组中。例如: ```javascript const arr1 = [1, 2, 3]; const arr2 = [...arr1, 4, 5, 6]; console.log(arr2); // 输出:[1, 2, 3, 4, 5, 6] ``` 在对象字面量中,拓展运算符可以将一个对象的属性展开到另一个对象中。如果有相同的属性名,则后面的属性值会覆盖前面的。例如: ```javascript const obj1 = { a: 1, b: 2 }; const obj2 = { ...obj1, c: 3 }; console.log(obj2); // 输出:{ a: 1, b: 2, c: 3 } ``` 拓展运算符还可以用于克隆数组和对象,因为它创建了一个新的数组或对象副本。例如: ```javascript const originalArray = [1, 2, 3]; const newArray = [...originalArray]; console.log(newArray); // 输出:[1, 2, 3] const originalObject = { a: 1, b: 2 }; const newObject = { ...originalObject }; console.log(newObject); // 输出:{ a: 1, b: 2 } ``` 拓展运算符的应用还有很多,它可以简化代码并提高可读性。希望这个解答对你有帮助!如果你还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值