将不确定变为确定~一切归总为“二”(C#中的位运算有啥用)

本文中的“二”,指的是二进制,即看见2就进一,也叫逢二进一,它是最为简单和清晰的数据,在现实生活中,人们用的最多的就是十进制数据,即逢十进一,看一下例子:

二进制: 十进制

0                         0

01 01

10 02

11 03

100 04

看到了吧,在二进制中,不会出现比1大的数,除了0就是1,而在十进制中,不会出现10,它由0~9这10个数字组成。

在我们的C#中,位运算分为左位移和右位移,分别用<<和>>表示,左移相当于向左移位,右面补0,例如:

10 << 1  它的含义是10 0,它最后的结果就是100,相当于10进制的4,这时我们难看出左移1位,相当于乘2操作,返之还有右移,例如:

100 >> 1 它的结果就是010,它在左面进行补0,右移后相当于除2操作

通过这个特性,我们在设计具有位去处的Flags特性枚举时,可以这样来做了

 

我们将它的值输出看一下吧

结果如下:

总结:事实上,在无论是十进制还是十六进制或八制的位运算,计算器都会它将转换成二进制,然后再进行位移的计算。

本文转自博客园张占岭(仓储大叔)的博客,原文链接:将不确定变为确定~一切归总为“二”(C#中的位运算有啥用),如需转载请自行联系原博主。

时间: 2024-08-29 12:08:35

将不确定变为确定~一切归总为“二”(C#中的位运算有啥用)的相关文章

将不确定变为确定~整形变量是否可以进行位运算(像枚举类型一样)

如果您看到这个题目,觉得有点怪,那说明你是一个高人,最起码比我高的多,呵呵. 前几天做了一个公用后台管理系统的项目,其中有一个地方涉及到权限管理的,即为每一个按钮赋一个权限,然后它权限汇总到角色表里,即一种角色有一些操作权限 ,表结构如下: 我们看到OperatorAuthority就是操作权限的意思,它是个int类型的,一个role有一个OperatorAuthority,那我们应该怎么把多个权限存储到OperatorAuthority字段里呢? 这时,我想到了枚举类型的位运算,所以我把权限枚

将不确定变为确定系列~目录(“机器最能证明一切”)

本系列文章主要是我在工作中,遇到一些不能主观判断的问题,最后在电脑上去证明我的理解是否正确,这也是题目"将不确定变成确定"的由来. 记得我在上大学时,老师说过一句话:"机器最能证明一切",这句话现在看来,确实很经典. 将不确定变为确定系列~目录("机器最能证明一切") 第一回 将不确定变成确定~类中的override 第二回 将不确定变成确定~我想监视我的对象,如果是某个值,就叫另一些方法自动运行 第三回 将不确定变成确定~frameset页面不

java 简单的位运算

问题描述 java 简单的位运算 int i=0xaabbccdd : byte b1=0xdd: byte b2=0xcc: byte b3=0xbb: byte b4=0xaa: 使用位运算将i变为0xddccbbaa 解决方案 Java位运算Java位运算JAVA中的位运算 解决方案二: b1是不是0xdd? b1*16^6+b2*16^4+b3*16^2+b4

C++ 学习

  内联函数 inline 内联函数的函数体的限制 (1)   函数体不能含有复杂的结构控制语句,如while和switch,若包括的话,编译器将会将其视为普通函数: (2)   递归不能用于内联函数 (3)   内联函数只适用于小函数 内部函数(static) 外部函数(extern)   结构体(struct)和类(class)的差距 默认的访问权限不一致.        面向对象的三大特点:继承 封装 多态 基于对象   类的定义 访问控制: (1)      用private限定的成员成

3个小窍门教你如何轻松制作纪实好照片

长假已经渐行渐远,远足归来的你一定拍到不少好照片.相比一般的旅游看景,如今不少单反一族不爱旅游,偏爱"旅行"或者"流浪",旅行更注重对人文景观的捕捉和感受.与之对应的摄影,叫做纪实摄影. 纪实摄影通常要表达出一个普遍的主题,画面感强烈并且具有深刻的涵义,所以糖水片的那一套后期已经不能hold住纪实摄影了.对于众多摄影初学者来说,注重主题的表达,真实记录下的人文风景却总因为色彩和环境的限制而使照片失了许多意境. 例如这张西藏老人,拿着转经轮笑的非常灿烂,但平庸的色调使

ASP 3.0高级编程(三十九)

编程|高级 8.4.3 创建记录集创建一个记录集十分容易,通过调用Recordset对象的Open方法来实现:Recordset.Open [Source], [ActiveConnection], [CursorType], [LockType], [Options]其参数及说明如表8-3所示:表8-3 Open方法的参数及说明参 数 说 明 Source 数据源.可以是数据库中的表名.存储的查询或过程.SQL字符串.Command对象或适用于提供者的其他命令对象 ActiveConnecti

CSS教程:LESS和Sass共同点和区别

文章简介:LESS介绍及其与Sass的差异. 原文:LESS介绍及其与Sass的差异译自:An Introduction To LESS, And Comparison To Sass原作者:Jeremy Hixon请尊重版权,转载请注明来源,多谢! 自从一个月前我偶然发现LESS之后我就开始坚定的使用它了.CSS本身对我来说从来不是问题,但是我很好奇使用变量来沿着一个调色盘为我的网站或模板创建一些东西的想法.拥有一个提供固定数量选项可选的色盘可以让我避免颜色太跳跃以至于从一个已定的风格中脱离.

按位“非”运算符 (~)

运算   对一个表达式执行按位"非"(取反). result = ~ expression 参数 result 任何变量. expression 任何表达式. 说明 所有一元运算符,如 ~ 运算符,以如下规则来求表达式的值: 如果将它用于 undefined 或 null 表达式,则产生一个运行时错误. 对象被转换成字符串. 如果可能,字符串被转换为数字.如果不能,则产生一个运行时错误. Boolean 值被当作数字(如果是 false 则为 0,如果是 true 则为 1). 用该运

如何测试电脑超频是否稳定?

1.计算高位圆周率的时间有多长 Superπ superπ是由日本东京大学金田研究室开发的一款用来计算圆周率的软件,设计者的初衷当初只是在HITAC S-3800/480超级计算机上使用,由于在计算π值时,考验到了CPU的多方面计算能力,因此后来被日本的超频爱好者移植到PC上使用,借助Superπ来测试超频后的性能,后来慢慢传入我国,许多硬件实验室也使用这款软件作为测试CPU稳定性的依据. 运行程序时,点击"运行计算"按钮,此时会弹出一个对话框请你选择要运行的圆周率位数,一般采用104