位与、位或、异或、位移运算

article/2025/8/27 10:17:21

位与(&)

参与运算的两个数据,按照二进制位进行“与运算”。
运算规则:0&0=0;   0&1=0;   1&0=0;    1&1=1;

即:两位同时为1,则值为1。否则为0
例如:9 & 5 = 1001 & 0101 = 0001 = 1

第一列都是1,所以结果也是1. 

第二列,两个都是0,结果也是0.

 第三列,一个1一个0,结果就是0.

 

 第四列,一个1一个0,结果就是0.

位或(|)

参与运算的两个数据,按照二进制位进行“或运算”。
运算规则:0&0=0;   0&1=1;   1&0=1;    1&1=1;
即:参与运算的两个数据只要有一个值为1 那么值为1
例如:9 | 5 = 1001| 0101 = 1101 = 13

异或 (^)

参与 运算的两个数据,按照二进制位进行“异或运算”。
运算规则: 0&0=0;   0&1=1;   1&0=1;    1&1=0;
即:参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。
例如:9 ^ 5 = 1001^0101 = 1100 = 12 

左位移(<<)

a<<b 表示把a转为二进制后左移b位(在后面添加 b个0)。例如100的二进制表示为1100100,100左移2位后(后面加2个零):1100100<<2 =110010000 =400,可以看出,a<<b的值实际上就是a乘以2的b次方,因为在二进制数后面添加一个0就相当该数乘以2,2个零即2的2次方 等于4。通常认为a<<1比a*2更快,因为前者是更底层一些的操作。因此程序中乘以2的操作尽量用左移一位来代替。
定义一些常量可能会用到<<运算。你可以方便的用1<<16 -1 来表示65535(unsingned int 最大值16位系统)。很多算法和数据结构要求数据模块必须是2的幂,此时就可以用<<来定义MAX_N等常量。

右位移(>>)

和<<相似,a>>b表示二进制右移b位(去掉末b位),相当于a除以2的b次方(取整)。我们经常用>>1来代替 /2(div 2),比如二分查找、堆的插入操作等等。想办法用>>代替除法运算可以使程序的效率大大提高。最大公约数的二进制算法用除以2操作来代替慢的出奇的%(mod)运算,效率可以提高60%。
int a =100;
a/4 ==a>>2;


http://chatgpt.dhexx.cn/article/Nkl868id.shtml

相关文章

git操作--------------------------------拉取某个远程分支到本地

1.新建一个空文件夹 例如:test 2.右键选择git bash here 初始化: git init可以看到文件夹里多了个.git隐藏文件 3.与远程master分支建立连接 git remote add origin http://xxx.xxx.xxx.xxx:xx/ly/fafafa.git直接去复制git仓库连接就行,这里以http做的示例 4.将远程分支拉到…

git远程分支代码拉取

1.远程拉取gitlab 工程分支&#xff0c;并在本地建立分支 具体过程 新建一个空文件初始化 git init自己要与origin master建立连接&#xff08;下划线远程仓库链接&#xff09; git remote add origin http://192.168.9.10:8888/root/game-of-life.git把远程分支拉到本地&#…

JAVA语言(Git拉取远程分支(dev)到本地)

步骤&#xff1a; 1、新建一个空文件&#xff0c;文件名为yrc_20220126 2.在当前文件夹单机鼠标右键&#xff0c;效果如下图&#xff1a; 3.点击弹出窗口的&#xff1a;Git Bash Here 4、初始化 git init5、自己要与origin master建立连接&#xff08;下划线为远程仓库链接…

idea把git远程分支拉取到本地

在开发过程中&#xff0c;我们有时候会碰到一种情况&#xff1a; 本地分支只有 development&#xff0c;远程分支有development,release,master这三个分支&#xff0c;那么我们本地要怎么切换到master分支呢&#xff1f; 一&#xff1a;正常来说&#xff0c;直接在idea的右下角…

git拉取远程指定分支到本地(本地分支映射到远程分支)

git拉取远程分支到本地 step1:新建一个空文件夹&#xff0c;名wuliu step2:初始化git git initstep3:与远程仓库建立连接 git remote add origin http://git.xxx.com:10001/root/vue-upms.git![在这里插入图片描述](https://img-blog.csdnimg.cn/20191008132344130.png st…

Git拉取远程分支到本地,修改并同步

Git拉取远程分支到本地 本地新建一个空白文件夹folder&#xff1b;进入folder目录&#xff0c;打开git bash&#xff0c;用命令行初始化git仓库&#xff1b; $ git init与远程仓库建立连接&#xff1b; // http://xxx...该网址为远程仓库Game的ip地址&#xff0c;可在远程仓…

从Git上如何拉取远程分支(dev)到本地?

步骤 1. 首先新建一个空的文件&#xff0c;文件名自定义2. 在当前文件夹下鼠标右击打开Git Bash here3. 打开后进行初始化 &#xff1a; git init4. 与origin master建立一个连接5. 把远程分支拉到本地6. 在本地创建分支dev并且进行切换到该分支7. 把某个分支上的内容进行拉取到…

【git之路】拉取远程分支到本地

文章目录 1、新建一个空文件夹2、初始化3、自己要与origin master建立连接&#xff08;下划线为远程仓库链接&#xff09;4、把远程分支拉到本地5、在本地创建分支dev并切换到该分支6、把某个分支上的内容都拉取到本地检查下&#xff0c;就结束啦 1、新建一个空文件夹 取名mas…

git 拉取远程分支到本地及本地切换分支

拉取远程分支到本地及本地切换分支 涉及的操作内容1.远程代码拉取到本地 - 2.本地合并其它分支代码 - 3.本地代码提交到远程指定仓库 - 4.本地切换分支 1.远程代码拉取到本地 首先确定要切换分支&#xff0c;查看当前本地及远程所有分支 git branch -a红色为远程分支&#…

git拉取远程分支到本地

**步骤&#xff1a; 1、新建一个空文件&#xff0c;文件名为hhhh 2、初始化 git init 3、自己要与origin master建立连接&#xff08;下划线为远程仓库链接&#xff09; git remote add origin gitgithub.com:XXXX/nothing2.git 远程仓库链接在github这里&#xff0c;如下…

git 拉取远程分支到本地(最简单方式)

步骤&#xff1a; 接下来我们进入正题&#xff1a; 一、新建一个空文件&#xff0c;文件名为hash------(名字随便取&#xff09; 二、初始化------git init 注意–(初始化完成之后记得检查文件夹是否有**(.git文件夹&#xff09;**-----有些文件夹打开没有大多数是隐藏了&am…

git拉取远程指定分支到本地

1.通过git clone的方式 只克隆单一分支&#xff1a; git clone -b <branch> --single-branch <url>注意&#xff1a; git clone -b <branch> <url>这条克隆的指令与全克隆的作用一致。 2.通过本地分支映射到远程分支的方式 a.与远程仓库建立连接 …

git 拉取远程分支到本地

目录&#xff1a; ***&#xff01;本小作者&#xff0c;是将终端和Git的可视化插件结合使用&#xff0c;刚接触的可以自习看一下&#xff0c;内容简单&#xff0c;避免弯路&#xff01;***一&#xff0c;简单了解远程分支1&#xff0c;连接远程&#xff1a;2&#xff0c;提交&a…

socket协议解读

前言 Socket的使用在 Android网络编程中非常重要今天我将带大家全面了解 Socket 及 其使用方法 目录 1.网络基础 1.1 计算机网络分层 计算机网络分为五层&#xff1a;物理层、数据链路层、网络层、运输层、应用层 其中&#xff1a; 网络层&#xff1a;负责根据IP找到目的地址的…

UDP/IP传输协议

一、传输层最重要的协议就是TCP和UDP。TCP协议复杂&#xff0c;是面向连接的传输协议且传输可靠&#xff1b;而UDP协议简单&#xff0c;是面向无连接的传输协议&#xff0c;传输速度快但传输不可靠。可以将UDP协议看作IP协议暴露在传输层的一个接口。 UDP协议同样以数据报(dat…

基于TCP协议的Socket网络通信

前言 一. 什么是网络(了解七层网络模型)?二. 什么是TCP/UDP协议?三.什么是socket?定义 四.基于TCP协议的socket通信的实现步骤是怎样的&#xff1f;客户端的实现服务端的实现测试 一. 什么是网络(了解七层网络模型)? 按区域可分为&#xff1a; 局域网&#xff08;区域小&am…

socket、tcp/ip、http三者之间的区别和原理

网络七层模型 OSI 模型(Open System Interconnection model)是计算机和网络在世界范围内实现互联的标准框架。它将计算机网络体系结构划分为七层,每层都可以提供抽象良好的接口。 1、物理层&#xff1a;例如线路、无线电、光纤、信鸽 物理层负责最后将信息编码成电流脉冲或其…

简单理解socket协议

TCP/IP 要想理解socket首先得熟悉一下TCP/IP协议族&#xff0c; TCP/IP&#xff08;Transmission Control Protocol/Internet Protocol&#xff09;即传输控制协议/网间协议&#xff0c;定义了主机如何连入因特网及数据如何再它们之间传输的标准&#xff0c; 从字面意思来看T…

Http、TCP/IP协议与Socket之间的区别

HTTP协议&#xff1a;简单对象访问协议&#xff0c;对应于应用层 &#xff0c;HTTP协议是基于TCP连接的 tcp协议&#xff1a; 对应于传输层 ip协议&#xff1a; 对应于网络层 TCP/IP是传输层协议&#xff0c;主要解决数据如何在网络中传输&#xff1b;而HTTP是应用层协…

简单理解Socket 协议

前几天和朋友聊天&#xff0c;朋友问我怎么最近不写博客了&#xff0c;一个是因为最近在忙着公司使用的一些控件的开发&#xff0c;浏览器兼容性搞死人&#xff1b;但主要是因为这段时间一直在看html5的东西&#xff0c;看到web socket时觉得很有意思&#xff0c;动手写几个dem…