以下程序可用于把某个位置位、清零或测试某位为0还是1:

#include <stdio.h>
#include <stdbool.h>int setbit(int num, int bit);
int clearbit(int num, int bit);
bool testbit(int num, int bit);int main(void){int num=0x8A26;int new_num;new_num=setbit(num, 3);printf("num=%d\tnew_num=%d.\n", num, new_num);new_num=clearbit(num, 2);printf("num=%d\tnew_num=%d.\n", num, new_num);printf("%d\n",testbit(num, 2));return 0;
}int setbit(int num, int bit){return num|=(1<<bit);
}int clearbit(int num, int bit){return num&=~(1<<bit);
}bool testbit(int num, int bit){return num&=(1<<bit);
}

常用的位操作:置位、清零与测试相关推荐

  1. 8.裸板--C语言下的寄存器的读写置位清零操作

    从CPU的角度来看,外设的寄存器跟通用寄存器操作一样,对它们的地址进行读写移位等操作即可进行配置读取写入等动作. 通用寄存器有15个 寄存器名字 Reg# APCS 意义 R0 a1 工作寄存器 R1 ...

  2. 常见位操作:获取,设置,清零

    1 /*常见位操作:获取,设置,清零 2 * 3 * */ 4 public class BitGet { 5 /* 6 * 该函数实现获取功能 7 * 先将1左移动i位,左移动0位变成了000000 ...

  3. 8位寄存器置位与清零操作

    对寄存器A的第四位进行置位操作,1<<4, A=A|(1<<4). 对寄存器A的第四位进行清零操作,1<<4,A=A&~(1<<4). 置位与清 ...

  4. C语言位操作 - bit 、byte的清零,置1,提取,判断

    一.位操作概述 针对MCU的嵌入是开发中经常涉及到寄存器的操作,例如GPIO配置低寄存器GPIOx_CRL(共32个bit),有时需要改变其中的一位或者几位bit值,同时不能影响其它bit位的值. 例 ...

  5. 为什么GPIO置位与清零要分开?

    在嵌入式系统开发中,用C语言进行位操作,设置管脚的值等是非常多的,在操作的同时我们又希望不要影响其他位的值,通常我们是要首先保存其他管脚的值,然后再设置,如我们清零PA01管脚(不采用C51的位操作) ...

  6. 清零 css,css样式清零及常用类

    /*css样式清零及常用类*/@charset "utf-8";/*CSS Reset*/ /*"微软雅黑","5FAE8F6F96C59ED1&qu ...

  7. 【verilog_8】: 设计60进制计数器,带异步复位、同步使能、同步装载、同步清零、同步置位

    1.设计60进制计数器,带异步复位.同步使能.同步装载.同步清零.同步置位 法一 author : Mr.Mao e-mail : 2458682080@qq.commodule cnt60x (in ...

  8. 设计60进制计数器,带异步复位、同步使能、同步装载、同步清零、同步置位

    设计60进制计数器,带异步复位.同步使能.同步装载.同步清零.同步置位 Design a modulus 60 counter, with asynchronous reset, synchronou ...

  9. 【嵌入式中的C】寄存器清零和置位操作

    对寄存器中的某一位进行操作 如果是封装到具体功能Bit以及bit组的代码工程,可以直接进行赋值.封装代码的方式可以参看这个链接 嵌入式中的C:联合体 union以及一般使用方式 如果是整个寄存器呢 比 ...

最新文章

  1. 【怎样写代码】确保对象的唯一性 -- 单例模式(五):一种更好的单例实现方法(静态内部类)
  2. 三角量测(Triangulation)之再学习
  3. 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 1)
  4. Qt 数据库操作(二)
  5. Java黑皮书课后题第2章:*2.21(金融应用:计算未来投资回报)编写程序,读取投资总额、年利率和年龄,显示未来投资回报金额
  6. Git常用命令使用大全
  7. [Linux] 修改系统默认编码
  8. SQL Tree解法
  9. excel三次样条函数_用于数字成像的双三次插值技术?
  10. [原创]全球首款不使用ViewState的Asp.Net2.0控件库
  11. 图神经网络在生化医疗方面的相关应用
  12. ArcGIS 拓扑验证与编辑共享要素
  13. 扁平卡通风毕业论文答辩PPT模板
  14. 区块链在版权保护方面的探索与实践
  15. 【冬瓜哥手绘】致敬龙芯!冬瓜哥手工设计了一个CPU译码器!
  16. 嵌入式pcb打造超薄降压模块让14500锂电池直接替代5号电池
  17. vue实现li列表的新增删除和修改
  18. Android和风天气sdk
  19. macbook不能进系统 备份数据_U盘装系统,系统分区备份,万兴数据恢复,介绍几款好用的系统软件...
  20. CAD2018安装计算机黑屏,3dmax2018一打开就闪退的三种原因和解决方法

热门文章

  1. 【简洁写法】剑指 Offer 32 - I. 从上到下打印二叉树
  2. C语言:L1-037 A除以B (10分)(解题报告)
  3. linux查找influx的安装位置,InfluxDB学习之InfluxDB的安装和简介 | Linux大学
  4. 批量ping脚本shell_30个Linux Shell脚本经典案例(上)
  5. cassss服务未启动_冰箱不启动是因为什么?要怎么解决这个问题
  6. php按照字段合并数组,PHP实现数组根据某个字段进行水平合并横向合并代码实例...
  7. php获取当前周得周一_php一行代码获取本周一,本周日,上周一,上周日,本月一日,本月最后一日,上月一日,上月最后一日日期...
  8. 气温常年在25度的地方_最低调的海滨城市,物价便宜,常年25度,沙滩细白,不输三亚!...
  9. php mongodb 子查询,MongoDB数组子查询elemMatch
  10. linux 控制台输入命令无效_解决linux下终端无法输入的假死问题