学习笔记(28):C语言 从小白到大神: 入门篇-位的概念以及位运算符介绍

立即学习:https://edu.csdn.net/course/play/8088/165752?utm_source=blogtoedu

1.位的概念

一个int型数据占4个字节的内存。一个char型数据占一个字节。

一个字节由8个二进制位组成。最左边的称为最高位,最右边的称为最低位;每一个二进制位的值是0或者1(二进制数,只有0,1两个数字,不能是其他数字);

 

2. 位运算符介绍:

(1)按位与运算符&:

参加运算的两个运算量,如果两个相应的位都为1,则该位的结果为1,否则为0;

(2)按位或运算符|:

参加运算的两个运算量,如果两个相应的位有一个为1,则该位的结果为1,否则为0;

(3)按位异或运算符^:

参加运算的两个运算量,如果两个相应的位相同,则结果为0,否则结果为1

如果某些位想翻转(从0变成1,从1变成0),那这个位可以和1做异或运算;

如果某些位想保留,那这个位可以和0做异或运算;

比如:有个二进制数,01111010,我们希望他低四位翻转,高四位保持不变。

01111010

00001111

------------------

01110101

(4)取反运算符~:

是单目运算符,只有一个运算量,用来对一个数字进行按位取反,也就是0变成1,1变成0;

(5)左移运算符  <<

将一个数的二进制位左移若干位,右侧补0;

每左移一位都相当于*2

unsigned  int tempvalue = 15 << 1;  //30

01111

---------

11110  = 30

(6)右移运算符 >>

将一个数的二进制位右移若干位,超出最低位的被舍弃,左边高位补0;

每右移一位都相当于除以2

(7)位运算符和赋值运算符可以结合使用,比如说:

&=    , |=     , >>=   ,<<=     , ^=   

如上所示,=总是在右边。

例:a  &= b  等价于  a = a & b;

 

你可能感兴趣的:(学习笔记(28):C语言 从小白到大神: 入门篇-位的概念以及位运算符介绍)