0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何才能给C语言增加几个位操作函数

Wildesbeast 来源:单片机教程网 作者:单片机教程网 2020-05-05 15:40 次阅读

汇编语言中有直接对位进行操作的指令,如置位、复位、位取反、测试某一位等,这对于硬件操作十分方便,在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 ”,xx);

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

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

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

}

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7523

    浏览量

    127548
  • 函数
    +关注

    关注

    3

    文章

    3859

    浏览量

    61297
收藏 人收藏

    评论

    相关推荐

    能给这个仿真图的c语言

    能给这个仿真图的c语言
    发表于 06-07 15:52

    C语言入门,C语言学习方法,初学者必看

    C语言入门,C语言学习方法,初学者必看 初学C语言的朋友应该首先了解
    发表于 04-02 16:06

    C语言函数是什么?

      对于初学者,在你们学习C语言的时候,你是怎么为C语言函数定义的呢!凌阳教育是这样认为的:  C
    发表于 01-07 18:05

    C语言入门知识分享!

    C语言入门,C语言学习方法,初学者必看 初学C语言的朋友应该首先了解
    发表于 10-10 01:52

    如何给C语言增加几个位操作函数

    在汇编语言中有直接对位进行操作的指令,如置位、复位、位取反、测试某一位等,这对于硬件操作十分方便,在C语言中尽管也提供了一些位
    发表于 07-14 18:15

    C语言文件操作函数fread(buffer,size,n,fp)的功能是什么

    多用户使用一台计算机的情况经常出现,这时可设置()答:多个用户账户在一个绝热刚瓶中,发生一个放热的分子数增加的化学反应,那么():答:Q = 0,W = 0,?U = 0 ;C语言文件操作
    发表于 08-31 08:59

    C语言入门,C语言学习方法

    初学C语言的朋友应该首先了解C语言关键的核心概念(结构化、三个执行流程、优先级、指针、文件、共用体、函数、作用域、重载等 ),只有弄明白了这
    发表于 09-10 16:24

    printf()函数怎样才能C语言一样输出打印信息呢

    printf()函数怎样才能C语言一样输出打印信息呢?
    发表于 12-01 07:58

    浅谈几个C语言基础知识点

    文章目录前言一、位操作二、使用步骤前言这里主要是简单的复习一下几个 C 语言基础知识点,引导那些 C
    发表于 12-09 07:14

    linux基本操作C语言基础

    目录C语言基础C++linux基本操作io操作数据结构进程线程网络编程实战项目C
    发表于 12-17 07:53

    操作C语言支持的几种位操作符是哪些呢

    一、位操作C语言支持的6种位操作符如下:1.不改变其他位的值的状况下,对某几个位进行设值。方法:先对需要设置的位用&
    发表于 12-22 08:07

    给C语言增加几个位操作函数

    发表于 10-10 10:05 2次下载

    嵌入式C语言的5个位操作笔记资料说明

    本文档的主要内容详细介绍的是嵌入式C语言的5个位操作笔记资料说明。
    发表于 05-08 18:19 3次下载
    嵌入式C<b class='flag-5'>语言</b>的5<b class='flag-5'>个位</b><b class='flag-5'>操作</b>笔记资料说明

    C语言编程文件操作函数库汇总资源下载

    C语言编程文件操作函数库汇总资源下载
    发表于 04-15 16:42 13次下载
    C<b class='flag-5'>语言</b>编程文件<b class='flag-5'>操作</b><b class='flag-5'>函数</b>库汇总资源下载

    C语言_文件IO操作函数总结

    当前文章涉及C语言文件操作相关知识点。列出最常见的文件操作函数、fopen、fread、fwrite、fclose 等。通过几个常见需求,写
    的头像 发表于 08-14 09:53 1494次阅读