博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 移位运算符
阅读量:5969 次
发布时间:2019-06-19

本文共 1605 字,大约阅读时间需要 5 分钟。

int result1= 66 << 1;//正数的左移位运算规则,左移一位乘以2,右移移位除以2  左移两位乘以4,三位乘以8,4位乘以16,右移则相反;            int result2 = -66<< 1; //负数的移位运算在最高位补1;运算规则和正数一样            Console.WriteLine("正数移位"+result1+"............"+"负数移位"+result2);

 

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

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);            }        }    }

 

转载于:https://www.cnblogs.com/GreenLeaves/p/5629235.html

你可能感兴趣的文章
C Primer Plus 第5章 运算符、表达式和语句 编程练习及答案
查看>>
Python点滴
查看>>
WINDOWS 几种坐标系
查看>>
运行gulp项目报错:AssertionError: Task function must be specified。
查看>>
大豆和黄豆芽还能吃吗?
查看>>
Yii2中如何将Jquery放在head中的方法
查看>>
解析solidity的event log
查看>>
[转发] 【GRT安智网】HTC安致手机ROM国内首个中文定制教程goapk首发[最新厨房V0......
查看>>
try catch 之后是否会继续执行
查看>>
vim 配置svn
查看>>
《重构-改善既有代码设计》读书笔记-重构篇
查看>>
测试第三方代码
查看>>
C API可使用的函数归纳
查看>>
自定义logback触发器策略进行日志滚动
查看>>
Ubuntu18 的日常
查看>>
mac中重命名文件
查看>>
RabbitMQ接触(二)
查看>>
Springboot-添加对jsp支持
查看>>
数据库设计中的14个技巧
查看>>
替换k个字符后最长重复子串
查看>>