首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

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

2013-10-12 
常见疑难运算符--位移运算符按位移运算符一、右移表达式的位,保持符号不变。expression1 expression2参数

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

按位移运算符

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

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。

热点排行