首页 > 其他分享 >按位运算符

按位运算符

时间:2023-03-15 23:34:20浏览次数:37  
标签:60 13 int 取反 运算符 二进制 按位

按位运算符

指定 a= 60(0011 1100); b = 13 (0000 1101)

按位与(&)

对两个数进行操作,然后返回一个新的数,这个数的每个位都需要两个输入数的同一位都为1时才为1,如下图:
(a& b) 结果为 12, 二进制为 0000 1100

具体代码:

#include<stdio.h>
int main(){
	int a=60;
	int b=13;
	printf("%d",a&b);
} 

按位或(|)

比较两个数,然后返回一个新的数,这个数的每一位设置1的条件是两个输入数的同一位都不为0(即任意一个为1,或都为1),如下图:
(a| b) 结果为 61, 二进制为 0011 1101

具体代码:

#include<stdio.h>
int main(){
	int a=60;
	int b=13;
	printf("%d",a|b);
} 

按位异或(^)

比较两个数,然后返回一个数,这个数的每个位设为1的条件是两个输入数的同一位不同,如果相同就设为0,如下图:
(a ^ b) 结果为 49, 二进制为 0011 0001

具体代码:

#include<stdio.h>
int main(){
	int a=60;
	int b=13;
	printf("%d",a^b);
} 

按位取反(~)

对一个操作数的每一位都取反,如下图:
(~a ) 结果为 -61, 二进制为 1100 0011
按位取反“~”:按位取反1变0,0变1

逻辑非“!”:逻辑取反, false变true,true变false,在C中,只要不是0就是真

所以
!5值是0
~按位取反
5二进制00000101,取反11111010,代表-6
所以~5值-6

~是按位取反,例如整数3,二进制形式是
00000000000000000000000000000011,按位取反后就是
11111111111111111111111111111100
!是逻辑否,一个非0数取否之后就是0,上面的3,用!之后就是0
所有的不是0的数用!操作后都是0

只有当操作数等于0xFFFFFFFF的,用!和~的结果值才是一样的
所有正整数的按位取反是其本身+1的负数
所有负整数的按位取反是其本身+1的绝对值
零的按位取反是 -1

具体代码:

#include<stdio.h>
int main(){
	int a=60;
	int b=13;
	printf("%d",~a);
} 

按位左移(<<)

将操作数的所有位向左移动指定的位数。
下图展示了11111111 << 1(11111111 左移一位)的结果。蓝色数字表示被移动位,灰色表示被丢弃位,空位用橙色的0填充。

按位右移(<<)

将操作数的所有位向又移动指定的位数。
下图展示了11111111 >> 1(11111111 右移一位)的结果。蓝色数字表示被移动位,灰色表示被丢弃位,空位用橙色的0填充。

标签:60,13,int,取反,运算符,二进制,按位
From: https://www.cnblogs.com/bujidao1128/p/17220667.html

相关文章

  • 201.数字范围按位与
    数字范围按位与给你两个整数left和right,表示区间[left,right],返回此区间内所有数字按位与的结果(包含left、right端点)。示例1:输入:left=5,right=7输......
  • 【Java笔记5】运算符
    @目录一.算术运算符二.赋值运算符三.比较运算符四.逻辑运算符五.三元运算符六.运算符的优先级七.字符串拼接字符串字符串拼接运算一.算术运算符运算符说明......
  • 运算符
    1、算术运算符1.1、+(加)、-(减)、*(乘)、/(除)、%(余)这里的%只能是整数运算,不然会报错,如下#include<stdio.h>intmain(){inta=2,b=5,c,d;floataa=......
  • Python 的is运算符和==运算符
    Python的is运算符和==运算符Python比较两个对象是否相同有两个运算符,本文介绍它们的异同。简单说,is比较的是内存地址是否相同,==比较值是否相同,并可以自定义。......
  • 05-运算符三元,包机制
    一、三元运算符a?b:ca是条件判断b是为真的输出c是为假的输出二、包机制一般利用公司域名倒置作为报名。例如百度:www.baidu.com包:com.baidu.www为了更好地组织类,包......
  • 三元运算符
    /***x?y:z*如果x==true则返回y否则结果为z*/publicstaticvoidmain(String[]args){intscore=50;Stringstype=sc......
  • 04 Golang 运算符
    一、算术运算符运算符描述+相加-相减*相乘/相除%求余代码示例:1packagemain2​3import"fmt"4​5funcmain(){6//......
  • Android 近期关注的文章和内容位运算符使用场
    App启动流程分析 ​​https://zhuanlan.zhihu.com/p/59801160​​ Application启动流程 ​​https://www.jianshu.com/p/14d54a76b16f​​Kotlin基础语法 ​​ https:......
  • 基础算术运算符
    理解:不同数据类型的数进行运算,结果为容量高的。自增,自减,属于一元运算符。自增,自减,例如intb=a++intb=++a;当不进行赋值操作时。a都是自身++,也就是a=a+1操作。当进行......
  • 变量交换方法(使用按位异或操作符)
    按位异或操作符:^作用:一个整形在计算机中按二进制存储,按位异或即按二进制位将两个数对比,相同为0,相反为1;举例如下:1#include<stdio.h>23intmain()4{5......