.NET 中 << 是什么意思?

rl0516 2007-11-28 03:10:27
int ThisZoom = 1 << zoom;//zoom为int型

上面语句的<<是什么意思?
...全文
57 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlc_168 2007-11-28
  • 打赏
  • 举报
回复
抄段msdn的说明:
左移位运算符 (<<) 根据第二个操作数指定的位数将第一个操作数向左移位。

expr << count
其中:

expr
类型为 int、uint、long、或 ulong 的表达式;要移位的值。
count
类型为 int 的表达式;移位数。
备注
如果 expr 为 int 或 uint(32 位数),则移位数由 count 的低 5 位 (count & 0x1f) 给定。

如果 expr 为 long 或 ulong(64 位数),则移位数由 count 的低 6 位 (count & 0x3f) 给定。

放弃 expr 的高序位,用 0 填充低序空位。移位操作从不导致溢出。

用户定义的类型可重载 << 运算符(请参见 operator);第一个操作数的类型必须为用户定义的类型,第二个操作数的类型必须为 int。

示例
// cs_operator_left_shift.cs
using System;
class Test
{
public static void Main()
{
int i = 1;
long lg = 1;
Console.WriteLine("0x{0:x}", i << 1);
Console.WriteLine("0x{0:x}", i << 33);
Console.WriteLine("0x{0:x}", lg << 33);
}
}
输出
0x2
0x2
0x200000000
请注意,i<<1 和 i<<33 给出相同的结果,因为 1 和 33 低序的 5 个位相同。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧