<< 运算符
来源:互联网 发布:淘宝卖大米不让发布 编辑:程序博客网 时间:2024/06/10 04:03
对位模式执行数学左移位。
result = pattern << amount
各部分说明
- result
- 必选项。整型数值。对该位模式进行移位的结果。数据类型与 pattern 的数据类型相同。
- pattern
- 必选项。整型数值表达式。要进行移位的位模式。数据类型必须为 Byte、Short、Integer 或 Long。
- amount
- 必选项。数值表达式。要将该位模式移位的位数。数据类型必须为 Integer 或扩展到 Integer。
备注
数学移位不是循环的,即不会将在结果的一端移出的数位从另一端重新移入。在数学左移位运算中,丢弃移出结果数据类型范围的数位,而将右端空出的数位位置设置为零。
为防止移位的结果超出它所支持的位数,Visual Basic 使用与 pattern 的数据类型相对应的大小掩码来屏蔽 amount 的值。可使用这些值的二进制与运算结果作为移位量。大小掩码如下所示:
pattern 的数据类型 | 大小掩码(十进制) | 大小掩码(十六进制) |
---|---|---|
Byte | 7 | &H00000007 |
Short | 15 | &H0000000F |
Integer | 31 | &H0000001F |
Long | 63 | &H0000003F |
如果 amount 为零,则 result 的值与 pattern 的值相同。如果 amount 为负值,则将把它作为无符号的值,并使用相应的大小掩码进行屏蔽。
数学移位绝不会产生溢出异常。
示例
此示例使用 << 运算符对整数值执行数学左移位。结果的数据类型始终与被移位的表达式相同。
Dim Pattern As Short = 192 ' Bit pattern is 0000 0000 1100 0000.Dim Result1, Result2, Result3, Result4, Result5 As ShortResult1 = Pattern<<
0 ' Result is 192 (0000 0000 1100 0000).Result2 = Pattern<<
4 ' Result is 3072 (0000 1100 0000 0000).Result3 = Pattern<<
9 ' Result is -32768 (1000 0000 0000 0000).Result4 = Pattern<<
17 ' Result is 384 (0000 0001 1000 0000).Result5 = Pattern<<
-1 ' Result is 0 (shifted 15 places to left).
Result4
的移位量以 17 AND 15 计算,结果等于 1。
注意几点:
1 数据类型,整型Byte Short Integer Long
2 大小掩码,超过的要换算成掩码范围内的进行计算
3 数学移位不是循环的
- 运算和运算符
- 运算符
- ??运算符
- 运算符
- << 运算符
- 运算符
- 运算符
- 运算符
- 运算符
- 运算符
- 运算符
- 运算符
- ?? 运算符
- 运算符
- 运算符
- 运算符
- 运算符
- 运算符
- CSS class和id选择符
- String.equals()和String.equalsIgnoreCase()的區別
- 如何遍历数据库表格及每个表格的字段
- Cisco Catalyst 2940系列交换机
- 我希望每次用 GROUP BY 排序完都加 相应的合计该怎么做?
- << 运算符
- Visual C++程序调试方法入门
- java 读写txt文本文件
- 完全实现 各种变态路径的解压缩,支持在 Web 上运行(在数字签名中遇到的问题,想到了用这种写法)
- 对txt读写改的java类
- Linux系统中关闭喇叭的报警声音
- Info-zip移植并添加进度callback机制
- SharpPcap使用心得
- Hadoop测试(在cygwin+window环境下)