在汇编语言中有直接对位进行操作的指令,如置位、复位、位取反、测试某一位等,这对于硬件操作十分方便,在C语言中尽管也提供了一些位操作手段,如按位与、按位或、按位取反等,但它们是对一个字节进行操作,如要对具体的一位操作,仍旧不方便,以下给出了一些函数,可以模仿汇编语言的一些位操作功能。

#define uchar unsigned char

/*测试变量某一位是否为‘1’,是返回真,否返回假,num为待测试的数,bit为位数,其值从0到7,下同*/

uchar bittest(uchar num,uchar bit)

{ if(num》》bit&0x01==1)

return 1;

else

return 0;

}

uchar bitclr(uchar num,uchar bit) /*清除某一位*/

{

uchar bit_value[]={1,2,4,8,16,32,64,128};

return num&~bit_value[bit];

}

uchar bitset(uchar num,uchar bit) /*设置某一位*/

{

uchar bit_value[]={1,2,4,8,16,32,64,128};

return num|bit_value[bit];

}

uchar bitcpl(uchar num,uchar bit) /*取反某一位*/

{

uchar bit_value[]={1,2,4,8,16,32,64,128};

if(num》》bit&0x01==1)

return num&~bit_value[bit];

else

return num|bit_value[bit];

}

/*以下主程序演示,调用时,可以直接给出数值,也可以给出变量名*/

void main(void)

{

uchar xx=0xfe;

xx=bitset(xx,0);

printf(“The set out is %x\n”,xx);

printf(“The clr out is %x\n”,bitclr(255,0));

printf(“The test out is %x\n”,bittest(0xff,0));

printf(“The cpl out is %x\n”,bitcpl(0x00,7));

}

以上是以TC为例编写的主程序,各函数在其它C语言中也一样可用。

c语言 个位,如何才能给C语言增加几个位操作函数相关推荐

  1. c语言程序设计需要学多久,九江c语言编程学习,九江学c语言编程报班,九江学c语言编程一般要多久才能学会...

    九江c语言编程学习,九江学c语言编程报班,九江学c语言编程一般要多久才能学会 首页 > C语言 > 九江c语言编程学习 作者:镀金池   发布时间:2017-10-18 14:11 据ID ...

  2. c语言编程学多久,丰城c语言编程学习,丰城学c语言编程的学校,丰城学c语言编程一般要多久才能学会...

    丰城c语言编程学习,丰城学c语言编程的学校,丰城学c语言编程一般要多久才能学会 首页 > 软件 > 丰城c语言编程学习 作者:镀金池   发布时间:2018-04-09 16:40 在之后 ...

  3. C语言编程>第十周 ⑧ 请编写函数fun,其功能是:将两个两位正整数x、y合并成一个整数放在z中。合并的方式是:将x的十位和个位依次放在z的十位和千位上,y十位和个位依次放在z的百位和个位上。

    例题:请编写函数fun,其功能是:将两个两位正整数x.y合并成一个整数放在z中.合并的方式是:将x的十位和个位依次放在z的十位和千位上,y十位和个位依次放在z的百位和个位上. 例如,当x=12,y=3 ...

  4. r语言lm函数找不到对象_怎么才能查看R语言某个包某函数源码?

    方法一:直接写函数名称,如在R中查看回归分析代码: lm 直接可以查看到 function (formula, data, subset, weights, na.action, method = & ...

  5. 【Go语言】【12】GO语言的结构体

    当我第一次接触到C语言时,就对结构体投入了极大的兴趣,认为这个东西以后大有作为,后来接触Java.C++,面向对象编程中的对象进入我的视线,经过了这么多年的磨练,回过头来再看结构体依旧是那么亲切:同时 ...

  6. C语言13567星号如何输出,c语言程序编程心得

    c语言程序设计 本课介绍c语言程序设计的基本方法和基本的程序语句. 从程序流程的角度来看,程序可以分为三种基本结构,即顺序结构.分支结构.循环结构.这三种基本结构可以组成所有的各种复杂程序.c语言提供 ...

  7. python程序设计语言是什么类型的语言-Python 是弱类型的语言 强类型和弱类型的语言区别...

    Python 是弱类型的语言 在强类型的编程语言中,定义变量时要指明变量的类型,而且赋值的数据也必须是相同类型的,C语言.C++.Java 是强类型语言的代表. 下面我们以 C++ 为例来演示强类型语 ...

  8. c语言八大数据基本类型,C语言中基本的数据类型有哪些

    C语言中基本的数据类型有哪些 发布时间:2020-11-26 15:10:13 来源:亿速云 阅读:76 作者:Leah 本篇文章给大家分享的是有关C语言中基本的数据类型有哪些,小编觉得挺实用的,因此 ...

  9. vc 运行c语言步骤,第1章_C语言概述(vc++环境如何运行c语言程序)[精选].ppt

    第1章_C语言概述(vc环境如何运行c语言程序)[精选] C语言程序设计 授课对象:电子商务06 时间安排: 理论课(1-9周): 星期一 5-6节 9407D 星期三 5-6节 9410D 实验课( ...

最新文章

  1. 与人相处时不越界,能让关系更和谐
  2. JS改变input的value值不触发onchange事件解决方案 (转)
  3. Js传递数组参数到后台controller的方式
  4. mybatis学习7之动态sql
  5. 猴子吃桃问题 python
  6. 一张图看懂encodeURI、encodeURIComponent、decodeURI、decodeURIComponent的区别
  7. Mysql中DATE_SUB 使用方法结合查询一天内,一周内,一月内的信息实例讲解
  8. 如何将 Mac 恢复还原到以前的日期
  9. java 发送短信例子_利用java实现的一个发送手机短信的小例子
  10. 各种数据库的连接字符串
  11. 洛谷 P3397 地毯 【二维差分标记】
  12. 使用 Bitmap Style Designer 为FMX修改已有样式
  13. Windows 常见后缀名
  14. 腾讯云人员缩减,急盈利,3000~4000 人面临被裁
  15. fastbin attack学习总结
  16. 热评云厂商:品高云4.62亿元,发力行业云,掘金实属不易
  17. 针对部分16系显卡通过VS2017编译的YOLOV3测试成功但图像无检测框的问题:
  18. 为什么说期货交易者依靠程序化交易系统接口才能获得成功
  19. TCP/IP面试相关问题
  20. JS.Canvas:镂空文字

热门文章

  1. 七、Python第七课——有关列表的二三事(切片、切片的遍历和复制)
  2. helm安装postgres_Helm 入门介绍 Kubernetes 上的包管理软件
  3. 农林资金 大数据审计案例_大数据审计:现状与发展
  4. java jps都卡死,java长时间运行后,jps失效
  5. spring html访问统计,spring-mvc访问本地html文件(示例代码)
  6. sync不生效 vue_Vue实战项目-记账器-重要知识点汇总
  7. 系统新模块增加需要哪些步骤_想要吸引人流,儿童乐园需要增加哪些新设备呢...
  8. springboot能用python吗_Python与springboot的对接
  9. java文件 linux_Linux执行Java文件
  10. 跨域产生的原因和解决方法_板式家具开料机加工过程产生崩边原因及解决方法...