文档章节

位运算符

304158
 304158
发布于 2017/09/07 16:09
字数 473
阅读 4
收藏 0
点赞 0
评论 0

1.与&运算符

int 3 内存为 0000 0011

int 4 内存为 0000 0100

运算 int 3 & int 4 = 0 内存为 0000 0000 

&运算符 如果对应的上下bit位都为1&计算后才为1,如果对应bit上下有一个为0,那么上下bit&后为0

#include<stdio.h>
#include<stdlib.h>


void main(void) 
{
	int a = 3;  //0000 0011
	int b = 4;  //0000 0100
	int c = a&b;//0000 0000
	printf("%d",c);

	getchar();
}

2.或|运算符

int 4 内存为 0000 0100

int 6 内存为 0000 0110

运算 int 4 | int 6= 6 内存为 0000 0110

|运算符,上下bit对应位,只要一个为1那么就是1,上下bit都为0时才是0

#include<stdio.h>
#include<stdlib.h>


void main(void) 
{
	int a = 4;  //0000 0100
	int b = 6;  //0000 0110
	int c = a|b;//0000 0110
	printf("%d",c);

	getchar();
}

3.^异或运算符

int 5 内存为 0000 0101

int 6 内存为 0000 0110

运算 int 5 ^ int 6= 3 内存为 0000 0011

^运算符,上下对应bit位必须是0和1的组合才能为1,如果上下对应bit位是相同的值那么为0。

#include<stdio.h>
#include<stdlib.h>


void main(void) 
{
	int a = 5;  //0000 0101
	int b = 6;  //0000 0110
	int c = a^b;//0000 0011
	printf("%d",c);

	getchar();
}

4.<<左移运算符

int 2 内存为 0000 0010

int 1 内存为 0000 0001

运算 int 2 << int 1 = 4 内存为 0000 0100

<<左移运算符,就是把 int 2的内存位往前移动一个int 1就是 4 内存为 0000 0100 就是前进一位,然后补0

#include<stdio.h>
#include<stdlib.h>


void main(void) 
{
	int a = 2;     //0000 0010
	int b = 1;     //0000 0001
	int c = a << b;//0000 0100

	printf("%d",c);

	getchar();
}

5.>>右移运算符

例如

int 8 内存为 0000 1000

int 2 内存为 0000 0010

运算 int 8 >> int 2 =2  0000 0010

>>右移运算符,是把int 8 的内存位往右移动 2 位其余补0

#include<stdio.h>
#include<stdlib.h>


void main(void) 
{
	int a = 8;     //0000 1000 
	int b = 2;     //0000 0010
	int c = a >> b;//0000 0010

	printf("%d",c);

	getchar();
}

 

© 著作权归作者所有

共有 人打赏支持
304158
粉丝 0
博文 66
码字总数 26817
作品 0
大兴安岭

暂无相关文章

C++内存映射文件居然是这样?!

内存映射文件大家都时不时听过,但它到底是个什么?赶紧来看看吧 内存映射文件到底是干嘛的呢?让我们先来思考下面几个问题: 如果您想读的内容大于系统分配的内存块怎么办?如果您想搜索的字...

柳猫 ⋅ 31分钟前 ⋅ 0

MySQL 数据库设计总结

规则1:一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎。 注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字段的长度之和不能超过1000字节...

OSC_cnhwTY ⋅ 今天 ⋅ 0

多线程(四)

线程池和Exector框架 什么是线程池? 降低资源的消耗 提高响应速度,任务:T1创建线程时间,T2任务执行时间,T3线程销毁时间,线程池没有或者减少T1和T3 提高线程的可管理性。 线程池要做些什...

这很耳东先生 ⋅ 今天 ⋅ 0

使用SpringMVC的@Validated注解验证

1、SpringMVC验证@Validated的使用 第一步:编写国际化消息资源文件 编写国际化消息资源ValidatedMessage.properties文件主要是用来显示错误的消息定制 [java] view plain copy edit.userna...

瑟青豆 ⋅ 今天 ⋅ 0

19.压缩工具gzip bzip2 xz

6月22日任务 6.1 压缩打包介绍 6.2 gzip压缩工具 6.3 bzip2压缩工具 6.4 xz压缩工具 6.1 压缩打包介绍: linux中常见的一些压缩文件 .zip .gz .bz2 .xz .tar .gz .tar .bz2 .tar.xz 建立一些文...

王鑫linux ⋅ 今天 ⋅ 0

6. Shell 函数 和 定向输出

Shell 常用函数 简洁:目前没怎么在Shell 脚本中使用过函数,哈哈,不过,以后可能会用。就像java8的函数式编程,以后获取会用吧,行吧,那咱们简单的看一下具体的使用 Shell函数格式 linux ...

AHUSKY ⋅ 今天 ⋅ 0

单片机软件定时器

之前写了一个软件定时器,发现不够优化,和友好,现在重写了 soft_timer.h #ifndef _SOFT_TIMER_H_#define _SOFT_TIMER_H_#include "sys.h"typedef void (*timer_callback_function)(vo...

猎人嘻嘻哈哈的 ⋅ 今天 ⋅ 0

好的资料搜说引擎

鸠摩搜书 简介:鸠摩搜书是一个电子书搜索引擎。它汇集了多个网盘和电子书平台的资源,真所谓大而全。而且它还支持筛选txt,pdf,mobi,epub、azw3格式文件。还显示来自不同网站的资源。对了,...

乔三爷 ⋅ 今天 ⋅ 0

Debian下安装PostgreSQL的表分区插件pg_pathman

先安装基础的编译环境 apt-get install build-essential libssl1.0-dev libkrb5-dev 将pg的bin目录加入环境变量,主要是要使用 pg_config export PATH=$PATH:/usr/lib/postgresql/10/bin 进......

玛雅牛 ⋅ 今天 ⋅ 0

inno安装

#define MyAppName "HoldChipEngin" #define MyAppVersion "1.0" #define MyAppPublisher "Hold Chip, Inc." #define MyAppURL "http://www.holdchip.com/" #define MyAppExeName "HoldChipE......

backtrackx ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部