C#中几个不常用的操作符

简介:
  由于刚进公司没多久和同事们共同开发一个项目,回到家里也没没怎么学习,也不知道要写点什么?安装了VISTA,在有些功能上还不懂的用,今天无聊中想起了一些操作符,但是真的忘记了它是怎么算的了。看了一下感觉感觉,本文大部分内容和例子来自于MSDN,只是为了你后好找把它弄过啦,由于我还没有装MSDN上线上的很慢郁闷。

  加减乘除不用讲了,中国人都会;&&,!=,<,>,等也差不多经常用到,今天来看看主要的几个二进制计算的操作符:

  
~ 运算符对操作数执行按位求补运算,其效果相当于反转每一位。按位求补运算符是为 intuintlong 和 ulong 类型预定义的。不用多说例子很重要啊,看了就明白了:
 1  //  cs_operator_bitwise_compl.cs
 2  using  System;
 3  class  MainClass
 4  {
 5       static   void  Main() 
 6      {
 7           int [] values  =  {  0 0x111 0xfffff 0x8888 0x22000022 };
 8           foreach  ( int  v  in  values)
 9          {
10              Console.WriteLine( " ~0x{0:x8} = 0x{1:x8} " , v,  ~ v);
11          }
12      }
13  }
  输出的结果:
~ 0x00000000   =   0xffffffff
~ 0x00000111   =   0xfffffeee
~ 0x000fffff   =   0xfff00000
~ 0x00008888   =   0xffff7777
~ 0x22000022   =   0xddffffdd

  & 运算符既可作为一元运算符也可作为二元运算符。

  一元 & 运算符返回操作数的地址(要求 unsafe 上下文)。为整型和 bool 类型预定义了二进制 & 运算符。对于整型,& 计算操作数的逻辑按位“与”。对于 bool 操作数,& 计算操作数的逻辑“与”;也就是说,当且仅当两个操作数均为 true 时,结果才为 true。& 运算符计算两个运算符,与第一个操作数的值无关。

 1  //  cs_operator_ampersand.cs
 2  using  System;
 3  class  MainClass
 4  {
 5       static   void  Main() 
 6      {
 7          Console.WriteLine( true   &   false );  //  logical and
 8          Console.WriteLine( true   &   true );   //  logical and
 9          Console.WriteLine( " 0x{0:x} " 0xf8   &   0x3f );   //  bitwise and
10      }
11  }  

 

  输出结果:
False
True
0x38
  
  二元  运算符是为整型和  bool 类型预定义的。对于整型, | 计算操作数的按位“或”结果。对于  bool 操作数, | 计算操作数的逻辑“或”结果;也就是说,当且仅当两个操作数均为  false 时,结果才为  false
 1  //  cs_operator_OR.cs
 2  using  System;
 3  class  MainClass
 4  {
 5       static   void  Main() 
 6      {
 7          Console.WriteLine( true   |   false );   //  logical or
 8          Console.WriteLine( false   |   false );  //  logical or
 9          Console.WriteLine( " 0x{0:x} " 0xf8   |   0x3f );    //  bitwise or
10      }
11  }

  输出结果:
1  True
2  False
3  0xff

  今天先看看这三个操作符,当然他们有~=,&=,|=操作符,大家也知道他们的意思。从上面的三个例子可以看出~按位求补基本上也就是不足16(16进制)的用F减去自身来替代自身的数字就OK了。int类型的数字在内存中为32位,也就是说每一个数字不过32位的前面加0然后求补。对于&比较多的功能,首先它可以是不安全代码指针,内存地址的引用,不知道是不是这样说的,其次可以是二进制的按位与位数上全是1时才为1,其他为0;如果是逻辑与全为true时才为true,其他为false。而对|操作符来说,只要有一个1就为1,只要有一个为true就为true,除非全是0或false时才是0和false。OK有了这些我们就知道怎样来计算了(在权限中应用是不错的)。

本文转自网魂小兵博客园博客,原文链接:http://www.cnblogs.com/xdotnet/archive/2007/03/22/oprator_and_or_act.html,如需转载请自行联系原作者

相关文章
|
6月前
|
存储 索引
【操作符】
【操作符】
20 0
|
8天前
|
Unix 编译器 C语言
操作符详解
操作符详解
|
4月前
|
存储 编译器
操作符详解(1)
操作符详解(1)
24 0
|
8月前
|
Linux C++ 索引
操作符详解(二)
操作符详解(二)
60 0
|
8月前
|
C语言 索引
【C】操作符详解
今天给大家带来一篇关于C语言操作符的详细介绍,在C语言中操作符主要有以下几种:
|
8月前
|
存储 C语言 C++
S5——C操作符详解,你都知道吗? 上
讲解主要内容: 1. 各种操作符的介绍 2. 表达式求值 以下让我们开始正式重新认识和理解操作符吧!
|
9月前
|
编译器
详解操作符(下)
详解操作符(下)
|
9月前
|
C语言 索引
详解操作符(中)
详解操作符(中)
|
9月前
|
存储 数据安全/隐私保护
操作符详解(1)
操作符详解(1)
|
10月前
|
存储
操作符(详解)
操作符(详解)
112 0

热门文章

最新文章