zoukankan      html  css  js  c++  java
  • C#中几个不常用的操作符

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

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

     
    ~ 运算符对操作数执行按位求补运算,其效果相当于反转每一位。按位求补运算符是为 intuintlongulong 类型预定义的。不用多说例子很重要啊,看了就明白了:
     1 // cs_operator_bitwise_compl.cs
     2 using System;
     3 class MainClass
     4 {
     5     static void Main() 
     6     {
     7         int[] values = { 00x1110xfffff0x88880x22000022};
     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有了这些我们就知道怎样来计算了(在权限中应用是不错的)。
  • 相关阅读:
    User Get 'Access Denied' with Excel Service WebPart
    How To Search and Restore files from Site Collection Recycle Bin
    How To Collect ULS Log from SharePoint Farm
    How To Restart timer service on all servers in farm
    How to Operate SharePoint User Alerts with PowerShell
    How to get Timer Job History
    Synchronization Service Manager
    SharePoint 2007 Full Text Searching PowerShell and CS file content with SharePoint Search
    0x80040E14 Caused by Max Url Length bug
    SharePoint 2007 User Re-created in AD with new SID issue on MySite
  • 原文地址:https://www.cnblogs.com/xdotnet/p/oprator_and_or_act.html
Copyright © 2011-2022 走看看