zoukankan      html  css  js  c++  java
  • 跑骚时刻

         /*
    	2014年5月21日 10:01:09		位运算符和逻辑运算符
    	*/
    
    	int i = 5, k = 21;
    	// 位运算符:&	按位于
    	printf("%d
    ", i&k);//5,分别把这个两个数的二进制对比。只有同位两个数都是1,那么该位就为1,否则为0;例如:1&0=0,0&1=0,1&1=1,0&0=0
    	// 逻辑运算符:&&	逻辑与(并且)
    	printf("%d
    ", i&&k);//1,如果i和k都不为0;那么就返回1;如果i和k其中有一个数为0,那么就返回0
    
    	// 位运算符:|	按位或
    	printf("%d
    ", i | k);//5,分别把这个两个数的二进制对比。只有同位两个数都是0,那么该位就为0,否则为1;例如:1|0=1,0|1=1,1|1=1,0|0=0
    	// 逻辑运算符:||	逻辑或(或者)
    	printf("%d
    ", i || k);//1,如果i和k都为0;那么就返回0;如果i和k其中有一个数为1,那么就返回1
    
    	// 位运算符:~	按位取反
    	printf("%d
    ", ~i);//-6,把i变量所有的二进制位取反;例如:~1=0,~0=1
    
    	// 位运算符:^	按位异或
    	printf("%d
    ", i^k);//16,分别把这个两个数的二进制对比。如果同位两个数相同,该位就为0,不同为1;例如:1^0=1,0^1=0,1^1=1,0^0=0
    
    	// 逻辑运算符:<	小于
    	printf("%d
    ", i < k);//1,如果i小于k,返回1,否者返回0
    	// 位运算符:<<	按位左移
    	printf("%d
    ", k << 3);//168,把k所有的二进制位向左移3位,后面用0填充。相当于k乘以2的3次方,移动n位就乘以2的n次方。例如:0101,左移后:0101000
    
    	// 逻辑运算符:>	大于
    	printf("%d
    ", i > k);//0,如果i大于k,返回1,否者返回0
    	// 位运算符:>>	按位右移
    	printf("%d
    ", k >> 3);//2,把k所有的二进制位向右边移3位,前面空出来的有两种情况:1.全部补0,2.如果最高位为0就补0,为高位为1就补1;相当于k除以2的3次方,移动n位就除以2的n次方。前提是不能丢失;例如:0101000,右移后:0101
    

      

  • 相关阅读:
    SQL Server 2012本地发布、订阅及相关问题的解决方案
    微信小程序——try {} catch (e) {}
    C# .net 填充无效,无法被移除 微信小程序解密失败的解决办法
    功能测试--H5测试点
    功能测试--指纹识别测试点
    功能测试--二维码测试点
    功能测试--登录测试点
    功能测试--计步测试点
    功能测试--投票测试点
    功能测试--签到测试点
  • 原文地址:https://www.cnblogs.com/oncoy/p/3740984.html
Copyright © 2011-2022 走看看