博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中几个不常用的操作符
阅读量:7225 次
发布时间:2019-06-29

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

 
由于刚进公司没多久和同事们共同开发一个项目,回到家里也没没怎么学习,也不知道要写点什么?安装了VISTA,在有些功能上还不懂的用,今天无聊中想起了一些操作符,但是真的忘记了它是怎么算的了。看了一下感觉感觉,本文大部分内容和例子来自于MSDN,只是为了你后好找把它弄过啦,由于我还没有装MSDN上线上的很慢郁闷。
  加减乘除不用讲了,中国人都会;&&,!=,<,>,等也差不多经常用到,今天来看看主要的几个二进制计算的操作符:
  
~ 运算符对操作数执行按位求补运算,其效果相当于反转每一位。按位求补运算符是为 、、 和  类型预定义的。不用多说例子很重要啊,看了就明白了:
 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
  & 运算符既可作为一元运算符也可作为二元运算符。

  一元 & 运算符返回操作数的地址(要求  上下文)。为整型和 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,如需转载请自行联系原作者

你可能感兴趣的文章
Android 100+行实现本地跳一跳辅助(不需要连接电脑)
查看>>
位状态的使用
查看>>
面试技术题笔记
查看>>
Myth源码解析系列之一-项目简介
查看>>
JS易混淆的方法整理
查看>>
iOS下JS与OC互相调用(八)--Cordova详解+实战
查看>>
七牛实时音视频云视频连线demo(web部分)
查看>>
Netty源码分析(六):SelectedSelectionKeySetSelector
查看>>
forEach,for...of,map与asycn/await
查看>>
springboot 2 Hikari 多数据源配置问题(dataSourceClassName or jdbcUrl is required)
查看>>
Golang数据库编程之GORM模型定义与数据库迁移
查看>>
Oracle redo解析之-4、rowid的计算
查看>>
Easy Scheduler 1.0.3 发布,分布式工作流任务调度系统
查看>>
java 颠倒整数
查看>>
Python入门教程100天:Day05-练习总结
查看>>
环境搭建,8种基本类型,Static,package和import,log4j
查看>>
即将到来的 Debian 10 Buster 发布版的新特点
查看>>
iOS 头部视图下拉变大
查看>>
Disruptor并发框架
查看>>
react-hooks 实现简单的评论list
查看>>