C语言位操作符8个常用的小技巧

嵌入式ARM 2022-06-15 12:00

本文主要介绍了一些会经常使用到的位操作小技巧,希望能对大家有所帮助。

使用位操作符时,有两点需要注意:

  • 进行位运算时数据全部是换算为二进制的;

  • 位操作符只适用于整形变量,不适合浮点数变量(本质是由于两者的数据存储类型不同)。

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<}
END

来源:嵌入式基地

版权归原作者所有,如有侵权,请联系删除。

推荐阅读
高质量代码是怎么写出来的?
程序员坐牢了,会被安排写代码吗?
崩溃!实习生把小组的代码仓库搞得一团糟…

→点关注,不迷路←
嵌入式ARM 关注这个时代最火的嵌入式ARM,你想知道的都在这里。
评论 (0)
  • 概述        TC10 为OPEN Alliance 中的一个技术委员会小组,专注于研究基于车载以太网的休眠唤醒机制,旨在为汽车应用场景提供灵活的休眠唤醒解决方案。该小组提出的休眠唤醒规范(《TC10 Sleep/Wake-up Specification》,以下简称TC10规范)作为对IEEE 802.3系列规范的补充,详细定义了以太网PHY的休眠唤醒过程、新增服务原语和接口、时间参数、指令描述等内容。目前,TC10已经发布了适配10Ba
    经纬恒润 2025-02-18 14:30 102浏览
  •  电磁铁的磁芯材质:软铁还是硬铁电磁铁的磁芯通常采用软铁材质,因其具有高磁导率和低矫顽力,使得电磁铁能够在通电时迅速产生强磁场,断电后磁场又能迅速消失。一、电磁铁与磁芯材质电磁铁是一种利用电流产生磁场的装置。其核心部件——磁芯,对电磁铁的性能有着至关重要的影响。在选择磁芯材质时,需要考虑多种因素,如磁导率、矫顽力、饱和磁化强度等。这些因素直接关系到电磁铁的工作效率、响应速度和能耗等方面。二、软铁与硬铁的特性软铁和硬铁是两种常见的磁性材料。软铁具有高磁导率和低矫顽力的特点,这意味着它容易
    锦正茂科技 2025-02-18 10:32 52浏览
  • 嘿,大家好!在高压电子世界里摸爬滚打的朋友们,你们有没有遇到过这样的难题?那就是,如何选择适合高压环境的光颉精密电阻? 这可不是一个简单的问题,毕竟在高压环境下,电阻不仅要顶得住电压的“压力”,还得保证精度和稳定性,这要求可真不低。想想看,如果选错了电阻,就像给跑车装了个自行车轮,那能行吗?肯定不行!轻则电路性能大打折扣,重则电阻直接“罢工”,甚至引发更严重的后果。所以说,在高压应用中,选择一款靠谱的光颉精密电阻,那可是至关重要的。别担心,今天咱们就来好好聊聊,如何选择适合高压环境的光
    贞光科技 2025-02-18 17:28 100浏览
  • 故障现象 一辆2013款奔驰S300L车,搭载272 946发动机,累计行驶里程约为15万km。车主反映,将挡位置于D挡,稍微释放一点制动踏板,车辆蠕动时车身明显抖动,类似气缸失火时的抖动,又类似手动变速器,离合器片不平,起步半离合时的那种抖动;完全释放制动踏板后,抖动现象消失,且车辆行驶无明显异常。为此更换过火花塞、点火线圈,清洗过燃油管路,故障依旧;接着又大修了自动变速器,并更换了液力变矩器,但故障依然存在,于是将车开至我厂进行检修。 故障诊断 接车后试车,确认故障现象与车主所述一
    虹科Pico汽车示波器 2025-02-19 14:14 60浏览
  • 《哪吒2》票房破百亿背后的科技密码:解码中国动画产业的技术跃迁与制造底气2024年夏季,国产动画电影《哪吒2》以雷霆之势席卷全球院线,不仅成为中国影史第二部票房突破百亿的现象级作品,更以多项技术突破刷新行业纪录。这些成就背后,不仅是中国动画工业的崛起,更是中国科技创新与高端制造业协同突破的缩影。作为深耕PCB行业多年的捷多邦小编,今天带您从技术视角,解读这场银幕奇迹背后的制造密码。一、从“数字造神”到“算力革命”:动画技术背后的硬核突破《哪吒2》的视觉革命始于AI工业化管道的深度应用。影片中大量
    捷多邦 2025-02-15 17:57 498浏览
  • 概述        在上一篇文章中,我们了解了TC10规范的内容,并掌握了基于以太网链路的物理层休眠唤醒机制。为了确保不同厂商的设备在以太网休眠唤醒功能上的互操作性,OPEN Alliance制定了详细的测试规范。测试规范        针对以太网休眠唤醒机制的测试,包含在各个以太网速率下的IOP测试规范中,具体如下:《10BASE-T1S Interoperability Test Suite》《100BASE-T
    经纬恒润 2025-02-19 13:20 59浏览
  • 故障现象 一辆2010款路虎揽胜车,搭载5.0 L发动机,累计行驶里程约为16万km。车主反映,接通空调开关后,有时出风忽大忽小,有时不出风,有时要等2 min左右才出风;有时两三天出现一次,有时好几天才出现一次,故障没有规律。 故障诊断接车后试车,故障现象并未出现。使用故障检测仪检测,在空调控制单元(HVAC)中存储有故障代码“U1000-00 固态驾驶员保护微活-驾驶员已禁用”。查看该故障代码相关说明,可能的原因为中央接线盒输出电路对搭铁或电源短路,这与空调出风故障没有关联。如图1
    虹科Pico汽车示波器 2025-02-19 13:49 50浏览
  • 导读:2025年1月6日,在 ChatGPT 诞生两周年之际,OpenAI 的核心人物 Sam Altman 回顾了一段波澜壮阔且充满挑战的历程。九年前,怀揣着对通用人工智能(AGI)的坚定信念,OpenAI 踏上征程。彼时,质疑声不绝于耳,多数人认为这毫无成功的可能。但他们未曾动摇,毅然投身这一充满未知的领域。直至 2022 年 ChatGPT 的推出,如同在科技领域投入巨石,引发轩然大波,开启了前所未有的发展态势。然而,荣耀背后是难以想象的艰难。围绕新技术构建公司,犹如在黑暗中摸索前行,每一
    用户1739588245528 2025-02-15 11:03 169浏览
  • 清晨,闹钟准时响起,窗帘自动拉开,床灯随之亮起,音箱中则自动传出每日的早间新闻,从而唤醒熟睡中的你,而这只是智能家居中的冰山一角。作为人类群体追求更高生活品质的居住空间,智能家居正飞速普及至我们的日常生活之中,极大地提升了生活的便利性与舒适度。然而,随着单品智能向全屋智能的快速发展,不同智能家居设备的工作电压与通信频率等运行参数存在差异,它们共同运行在一个智能家居系统之中,其所产生的电气噪声与电磁干扰会互相影响,并形成潜在的安全隐患。例如,电气噪声可能导致线路过热,增加电气火灾的发生风险;电磁干
    华普微HOPERF 2025-02-18 10:48 70浏览
  • 2025,新一轮汽车行业“战争”开始,但这一次不是过往的“价格战”,而是新一轮的“智驾战”。近期,比亚迪董事长兼总裁王传福在比亚迪智能化战略发布会上表示:“比亚迪将全系搭载“天神之眼”高阶智驾系统,其中首批21款车型将陆续上市,包括秦家族、元家族、宋家族、海豹家族等。”具体来看,20万元以上、15万元至20万元、10万元至15万元级别的车型将全系标配“天神之眼”。10万元以下的车型多数将搭载“天神之眼”,包括海鸥、海豹05DM-i和第二代秦PLUS DM-i。智驾不是什么新鲜技术,但是在比亚迪之
    刘旷 2025-02-18 10:19 80浏览
  •         电磁铁作为一种能够利用电流产生磁性的装置,在现代社会的生产和生活中发挥着越来越重要的作用。其应用范围广泛,不仅局限于工业制造领域,还深入到交通运输、医疗健康以及我们的日常生活之中。一、电磁铁在工业制造中的应用       在工业制造领域,电磁铁的应用可谓是举足轻重。它们被广泛应用于各种机械设备和生产线中,起着自动化控制、物料搬运等关键作用。例如,在重型机械中,电磁铁用于吸附和移动大型金属构件
    锦正茂科技 2025-02-18 10:05 83浏览
  • 随着国内市场的逐渐稳固,华为将目光投向了广阔的海外市场,开启了一段充满挑战与机遇的国际化征程。然而,华为在拓展海外市场时,遭遇了重重困难。文化差异带来的挑战不同国家和地区有着不同的文化背景、商业习惯和价值观,这使得华为在与当地客户、合作伙伴沟通和合作时面临诸多障碍。在欧洲,一些客户对产品的认证标准和售后服务有着非常严格的要求,并且注重商务活动中的礼仪和沟通方式。在机上欧洲通信市场竞争激烈,爱立信、诺基亚等本土企业在技术、品牌和市场份额上具有优势。而且欧洲各国的通信标准和监管政策不同,华为需要满足
    韭菜财经 2025-02-18 14:11 169浏览
  •                           春天来了,我们中国的传统节日--春节到了,随着国家富强,人们民族文化自信心的增强,这个中国年过的还挺热闹,挺红火。一段山村过新年的快乐时光,即兴而发赋了两首新诗。《渔家乐·山村新春》白发垂髫同喜乐,新春佳节意情奢。烟花璀璨腾空起,山村美景醉心涯。晓雾轻笼林野静,晚云淡抹岫峰斜。自然恩赐千般好,福满人间岁月嘉
    广州铁金刚 2025-02-17 15:59 126浏览
  • 过去一年,厨电行业的AI竞赛进入“大模型时代”,各大品牌纷纷亮出了自己的杀手锏。老板电器的“食神大模型”、方太的“Healthy CookingGPT”轮番登场,两者都立志要用AI“重新定义厨房”。新的一年,大模型技术的不断成熟与迭代,AI将不再仅仅是概念上的炒作,而是真正融入到每一个厨房场景中。这场在厨电领域内悄然进行的“科技革命”无疑将步入一个更为深入且广泛的实践应用阶段,AI厨电狂欢开始了。AI厨电“燃”起来了众所周知,厨电行业的发展与房地产市场密切相关。随着房地产市场的调整,新房装修需求
    刘旷 2025-02-19 10:51 60浏览
  • 电磁铁通电时会产生磁场,磁力随电流增强而增强,表现出吸引铁磁性物质的特性。电磁铁是一种能够产生磁场的装置,其特性在于可以通过通电来控制磁场的产生和消失。那么,当电磁铁通电时,它具体会表现出哪些特性和现象呢?一、产生磁场通电是电磁铁产生磁场的关键。当电流通过电磁铁的线圈时,线圈周围就会产生磁场。这个磁场与电流的大小和方向密切相关,电流越大,产生的磁场也越强。同时,磁场的方向可以通过改变电流的方向来改变,这是电磁铁灵活性的重要体现。二、磁力变化随着电流的增强,电磁铁产生的磁力也会相应增强。这种磁力的
    锦正茂科技 2025-02-15 09:59 149浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦