常见疑难运算符--位移运算符

按位移运算符

一、右移表达式的位,保持符号不变

expression1 >> expression2

参数

expression1

任何数值表达式。

expression2

任何数值表达式。

备注

>> 运算符将 expression1 的所有位右移expression2 指定的位数。用expression1 的符号位填充右移后左边空出来的位。右移的位被丢弃。expression1 的数据类型决定此运算符所返回的数据类型。·

>> 运算符屏蔽 expression2 以免expression1 的移位量太大。否则,如果移位量超出 expression1 的数据类型中的位数,则可能移走所有的初始位,从而会提供无意义的结果。为了确保每次移位保留至少一个初始位,移位运算符将使用以下公式来计算实际移位量:使用 expression1 中的位数减一所得的结果来屏蔽 expression2(使用按位“与”运算符)。

示例

计算完下列代码后,temp 的值为 -4:因为 -14(即二进制的11110010)右移两位后等于 -4(即二进制的11111100)。

 

 

var temp

temp = -14 >> 2

 

二、左移表达式的位

expression1 << expression2

参数

expression1

任何数值表达式。

expression2

任何数值表达式。

备注

<< 运算符将expression1 的所有位左移expression2 指定的位数。expression1的数据类型决定此运算符所返回的数据类型。

<< 运算符屏蔽expression2 以免expression1 的移位量太大。否则,如果移位量超出expression1 的数据类型中的位数,则可能移走所有的初始位,从而会提供无意义的结果。为了确保每次移位保留至少一个初始位,移位运算符将使用以下公式来计算实际移位量:使用expression1 中的位数减一所得的结果来屏蔽expression2(使用按位“与”运算符)。

示例

var temp

temp = 14 << 2

变量 temp的值为 56,因为 14(即二进制的00001110)左移两位等于 56(即二进制的 00111000)。

 

三、按位“与”运算符(&)

对两个表达式执行按位“与”运算。

expression1& expression2

参数

expression1

任何数值表达式。

expression2

任何数值表达式

备注

& 运算符将参数强制为匹配的数据类型。&运算符查看两个表达式的二进制表示形式的值,并对它们执行按位“与”运算。参数的数据类型决定此运算符所返回的数据类型。

示例:

 

0101   (expression1)

1100   (expression2)

----

0100   (result)

任何时候,只要两个表达式的某位都为 1,则结果中的该位为 1。否则,结果中的该位为 0

 

四、取模运算符 (%)

 

一个表达式的值除以另一个表达式的值,并返回余数。

number1 % number2

参数

number1

任何数值表达式。

number2

任何数值表达式。

备注

取模或余数运算符用number2 number1 并只返回余数。结果中的符号与 number1 的符号相同。结果值在 0 number2 的绝对值之间。

取模运算符的参数可以为浮点数字,因此 5.6% 0.5 返回 0.1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值