首页 > 其他 > 详细

<< >> ~ ^ 运算符

时间:2015-10-30 12:19:44      阅读:276      评论:0      收藏:0      [点我收藏+]

运算符号:


^ 异或

首先将参与运算的数字表达为二进制(这里采用8位):
2:00000010
3:00000011
上下对齐,逐位进行运算,法则是:
1异或1=0;0异或0=0;1异或0=1;0异或1=1
那么2和3的计算结果如下:
00000010 (2)
00000011 (3)
------------------
00000001 (1)
所以2^3 = 1


<< 左移 将操作数按位左移高位被丢弃低位顺序补0

例:10001010 <<4 也就是左移4位 结果为10100000
注意:对于有符号的数,左移会丢弃符号位,或者符号位会被更改。

 

<< 右移 将操作数按位右移低位被丢弃,如果是正数高位顺序补0,如果是负数高位顺序补1
例:10001010 >>4 也就是右移4位 结果为11111000
注意:对于有符号的数(int,double)等,右移时,最高位的符号位应该不变,如果以前是正数,符号位是0,那么右移后还应该是0,其他位补0,
如果以前是负数,符号位是1,那么右移后,符号位还应该是1,其他数补1(因为负数存的补码).对于无符号的数(uint,ushort)等,那不需要关心符号位。

 

~是一个一元运算符,他把操作的数的位取反!

比如:
操作数的位 ~的结果位
1 0
0 1

书上是这么说的!

但是我刚才测试了下:
发现它的默认值是-2

所以 int i = 10;
Response.Write(i+~1);
页面上显示8

<< >> ~ ^ 运算符

原文:http://www.cnblogs.com/liuxiaoji/p/4922636.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!