前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C# 移位运算符

C# 移位运算符

作者头像
郑小超.
发布2018-01-24 14:56:53
9010
发布2018-01-24 14:56:53
举报
文章被收录于专栏:GreenLeavesGreenLeaves
代码语言:javascript
复制
            int result1= 66 << 1;//正数的左移位运算规则,左移一位乘以2,右移移位除以2  左移两位乘以4,三位乘以8,4位乘以16,右移则相反;
            int result2 = -66<< 1; //负数的移位运算在最高位补1;运算规则和正数一样
            Console.WriteLine("正数移位"+result1+"............"+"负数移位"+result2);

当声明重载C#移位运算符时,第一个操作数的类型必须总是包含运算符声明的类或结构,并且第二个操作数的类型必须总是 int,如:

代码语言:javascript
复制
class Program
    {
        static void Main(string[] args)
        {
            ShiftClass shift1 = new ShiftClass(5, 10);
            ShiftClass shift2 = shift1 << 2;
            ShiftClass shift3 = shift1 >> 2;

            Console.WriteLine("{0} << 2 结果是:{1}", shift1.valA,  shift2.valA);
            Console.WriteLine("{0} << 2 结果是:{1}", shift1.valB,shift2.valB);
            Console.WriteLine("{0} >> 2 结果是:{1}", shift1.valA,  shift3.valA);
            Console.WriteLine("{0} >> 2 结果是:{1}", shift1.valB, shift3.valB);

            Console.ReadLine();
        }

        public class ShiftClass
        {
           public int valA;
           public int valB;

            public ShiftClass(int valA, int valB)
            {
                this.valA = valA;
                this.valB = valB;
            }

            public static ShiftClass operator <<(ShiftClass shift, int count)
            {
                int a = shift.valA << count;
                int b = shift.valB << count;
                return new ShiftClass(a, b);
            }

            public static ShiftClass operator >>(ShiftClass shift, int count)
            {
                int a = shift.valA >> count;
                int b = shift.valB >> count;
                return new ShiftClass(a, b);
            }

        }
    }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-06-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档