位操作符的一些运算小技巧

本文主要介绍一些会经常使用到的位操作小技巧。

首先呢,给大家分享一个C语言练习的网站:C语言练习

使用位操作符时有以下两点需要注意

  • 进行位运算时数据全部是换算为二进制的。
  • 位操作符只适用于整形变量,不适合浮点数变量。(本质是由于两者的数据存储类型不同)

1. 交换两个变量的值

  int a = 1;int b = 2;a ^= b;b ^= a;a ^= b;printf("a: %d b: %d\n", a, b);

2. 求二进制中1的个数

int a = 5;
int count = 0;while (a) {a = a&(a - 1); //每次把最低位丢弃,直到a为0.count++;
}
printf("%d\n", count);

3. 求二进制中0的个数

int a = 5;
int count = 0;
while (a+1) {a = a | (a + 1);count++;
}
printf("%d\n", count);

4. 求一个数的绝对值

int i = -2;
int j = i >> 31;i = (i ^ j) - j;
printf("%d\n", i);

5. 求一个数的相反数

int i = -2;i = ~i + 1;
printf("%d\n", i);

6. 判断一个数的奇偶性

int a = 3;if((a&1) == 1) {printf("奇数\n");
} else {printf("偶数\n");
}

7. 求两个数的平均数

int a = 3;
int b = 7;printf("平均值: %d\n", ((a + b) >> 1));

8. 从无符号类型x的第p位开始,取n位数

unsigned GetBits(unsigned x,int p, int n) {return (x>>(p+1-n)) & ~(~0<<n);
}

关注v-x-公-众-号:【嵌入式基地
后-台-回-复:【电赛】 即可获资料
回复【编程】即可获取
包括有:C、C++、C#、JAVA、Python、JavaScript、PHP、数据库、微信小程序、人工智能、嵌入式、Linux、Unix、QT、物联网、算法导论、大数据等资料

位操作符的一些运算小技巧相关推荐

  1. 从labuladong东哥那里看到的位运算小技巧

    从labuladong东哥那里看到的位运算小技巧 1. 利用或操作 `|` 和`空格`将英文字符转换为小写 2. 利用与操作 `&` 和`下划线`将英文字符转换为大写 3. 利用异或操作 `^ ...

  2. 2020 China Collegiate Programming Contest Changchun F - Strange Memory(dsu on tree + 位运算小技巧)

    题目连接: https://codeforces.com/gym/102832/problem/F 首先写这个题的时候要注意内存的问题 不要瞎几把define int long long 题解: 考虑 ...

  3. 在蓝湖上直接进行图片资源重命名小技巧

    目录 1.前言 2.正文 3.最后 1.前言 大家在实际工作中,有没有用到过蓝湖呢? 蓝湖是一款产品文档和设计图的共享平台,帮助互联网团队更好地管理文档和设计图. 最近两年使用蓝湖,共享设计图在公司内 ...

  4. 一元操作符、强制类型转换表达式、乘除操作符、加法操作符、移位操作符、关系操作符、判等操作符、位操作符与逻辑操作符、条件与操作符、条件或操作符--运算机制与返回值

    操作符处理及返回值 先遣提示 一元操作符 前缀递增操作符 ++ 前缀递增操作符 - - 一元加号操作符 + 关于一元数值提升或二元数值提升 可以看这篇博客 一元减号操作符 - 这里涉及了 原码,反码, ...

  5. 淘宝直播的定义,淘宝直播小技巧介绍,以及淘宝有哪些推广渠道和展示位?

    电商+直播的新型推广模式 的出现,让直播成了主流的带货方式之一,众多的电商平台都开启了直播带货的新模式,例如京东.淘宝.苏宁易购.v兔等. 淘宝直播也是在短视频兴起之时才开始大力推广直播卖货的,今天就 ...

  6. mysql insert 运算_MySql insert插入操作的3个小技巧分享

    1.插入的数据来源自其他表 表A有id, cola 字段 表B有id, cola, colb...等字段,其中id都为主键,cola为相同名字的列 现想将表B中colb>1000的记录都插入表A ...

  7. 收藏喜+1!值得使用的100个Python小技巧

    目前Python可以说是非常流行,在目前的编程语言中,Python的抽象程度是最高的,是最接近自然语言的,很容易上手. 你可以用它来完成很多任务,比如数据科学.机器学习.Web开发.脚本编写.自动化等 ...

  8. 快收藏!整理了 100 个 Python 小技巧

    作者:小F 来源: 法纳斯特 目前Python可以说是非常流行,在目前的编程语言中,Python的抽象程度是最高的,是最接近自然语言的,很容易上手. 你可以用它来完成很多任务,比如数据科学.机器学习. ...

  9. 抄袭一些别人工作中的小技巧

    1-类型强制转换 1.1 字符串转整形 '32' * 1 // 32 'ds' * 1 // NaN null * 1 // 0 undefined * 1 // NaN 或者 + '123' // ...

最新文章

  1. BAT新风向标:程序员有福利了!
  2. http反向代理调度算法追朔
  3. python应用中调用spark_在python中使用pyspark读写Hive数据操作
  4. 使用while和FOR循环分布打印字符串S='asdfer' 中的每一个元素
  5. 普通的java类型是指,String是一个很普通的类 - Java那些事儿
  6. 阿里 深度学习推理框架_如何通过Knative无服务器框架构建深度学习推理
  7. rup 裁剪_裁剪师是什么意思
  8. 组合范畴语法 CCG
  9. Next.js 服务端渲染框架实战
  10. Fundamentals of Power Electronics 第1版第2版 pdf 资源
  11. 交通银行PHP代码,交通银行国际汇款代码 交通银行swift代码查询
  12. Unicode 字符集
  13. Jetpack Compose 从入门到入门(七)
  14. html5 3d 图片动画制作软件,9款令人惊叹的HTML5 3D动画应用
  15. 5个超棒的自我提升App
  16. 在C#中使用OpenCV(使用OpenCVSharp)
  17. 投资理财-曾经一起投资理财的朋友们
  18. Photoshop插件-保存-8位通道-16位通道-脚本开发-PS插件
  19. Berzerk CodeForces - 787C (BFS)题解
  20. .NET周报【11月第2期 2022-11-15】

热门文章

  1. 重塑未来:AI对教育行业的深远影响与挑战
  2. 日迹2022/06/23
  3. html5 在线答题活动,小程序
  4. 如何在工作中保持稳定情绪?应对挑战和困扰的有效方法
  5. 第十二届蓝桥杯大赛软件赛省赛 Python 大学 A 组 试题
  6. 菜鸟学Java——Jboss瘦身
  7. JavaScript—流程控制语句的合集
  8. 小米的红米战略:告别苹果走向三星
  9. Android Framework 学习
  10. 游戏外挂原理基础18反外挂方案