实战演练!C语言小白入门必须要掌握的位运算!

所谓位运算,就是对一个比特(Bit)位进行操作。在《二进制思想以及数据的存储》一节中讲到,比特(Bit)是一个电子元器件,8个比特构成一个字节(Byte),它已经是粒度最小的可操作单元了。

C语言提供了六种位运算符:

按位与运算(&)

一个比特(Bit)位只有 0 和 1 两个取值,只有参与

&

运算的两个位都为 1 时,结果才为 1,否则为 0。例如

1&1

为 1,

0&0

为 0,

1&0

也为 0,这和逻辑运算符

&&

非常类似。

C语言中不能直接使用二进制,

&

两边的操作数可以是十进制、八进制、十六进制,它们在内存中最终都是以二进制形式存储,

&

就是对这些内存中的二进制位进行运算。其他的位运算符也是相同的道理。

C语言位运算

有6种: &, | , ^(亦或), >(右移)。

注意:参与位运算的元素必须是int型或者char型,以补码形式出现。小编推荐一个学C语言/C++的学习裙【 六二七,零一二,四六四 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

按位与&

&运算常应用于:

迅速清零

保留指定位

判断奇偶性

a & 1 = 1;则a为奇数

b & 1 = 0;则a为偶数

按位或|

按位或(“|”)用途:设定数据的指定位

按位异或^

异或 就是位相同等于零,相异等于1

按位异或作用:

1.定位反转

2.交换数值

//交换a和b的值

按位取反~

左移、右移

让二进制左移N位,高位丢弃,低位补0,得到的 新值 = 原值*2^N,

作用:实现二倍乘除运算(右移几位相当于除于二的几次方。左移几位,相当于乘上二的几次方。)

问题:int是有符号类型,左移可能会把符号左移出去,发生溢出。

你可能感兴趣的:(实战演练!C语言小白入门必须要掌握的位运算!)