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
    

      

  • 相关阅读:
    NFC Basics(基本NFC)——翻译自developer.android.com
    【LeetCode】Sort Colors 解题报告
    发送手机物理标识请求
    Java编程介绍
    emacs 中使用git diff命令行
    OpenJudge百炼习题解答(C++)--题4074:积水量
    编程之美2.9 斐波那契数列
    Application Architecture Determines Application Performance
    程序包javax.servlet.annotation不存在
    mysql 严格模式 Strict Mode说明
  • 原文地址:https://www.cnblogs.com/oncoy/p/3740984.html
Copyright © 2011-2022 走看看