位操作符实用小技巧

前言
位操作符是一种用于操作二进制数据的操作符,位操作符具有高效、简洁等优点可以提高代码的效率,今天我将给大家分享一下位操作符的使用技巧。
在这里插入图片描述

小技巧
1,乘2,除2,乘10
首先我们知道<<操作符可以让我们的数据的二进制往左移一位,这样结果就会乘以2(一定范围内),

int a = 10;
a <<= 1//现在a=20

那么>>操作符就可以让我们的数据的二进制右移一位,让结果除以2。

int a = 10;
a >>= 1//现在a=5

我们知道a * 10=a * 2+a * 8,那么我们是不是可以这样写*10呢?

int a = 10;
a = a<<1+a<<3//现在a=100 

判断奇数偶数
我们可以使用&操作符来判断奇数偶数。

int a = 10;
int b = 11;
//a&1=0,b&1=1,也就是说让一个数与1&结果是1则说明是奇数反之为偶数

交换数值
我们知道a^a=0,所以我们可以利用这个特性来交换数值

int a = 10;
int b = 20;
a^=b;// a = a^b
b^=a;//b = a^b^b = a
a^=b;//a = a^b^a = b
//此时a = 20,b = 10

判断是否相等
当两个数相同的时候即a = b,则a ^ b = a ^ a = 0。

int a = 10;
int b = 10;
if(a^b)
printf("不相等");
else
printf("相等");

0-9和‘0’-‘9’的相互转换
比如我们想把1变为‘1’我们一般会这么写

int a = 1;
char b = 1+'0';

但是我们还可以这么写

int a = 1;
char b = a^48;

同理我们想把‘1’变成1也可以这样写

char a = '1';
int b = a ^ 48;
//此时b是1

尾声
以上就是位操作符的使用小技巧,让没见过的人来看肯定会当场看傻住,如果觉得博主讲的不错的话,请给博主一个关注,点赞,收藏支持一下哦~,我们下期再见!

猜你喜欢

转载自blog.csdn.net/Tokai___Teio/article/details/135310797