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

    文章

    7604

    浏览量

    136684
  • 函数
    +关注

    关注

    3

    文章

    4327

    浏览量

    62569
收藏 人收藏

    评论

    相关推荐

    C语言函数如何返回多个数据

    C语言函数如何返回多个数据?这个操作在写代码的时候还经常遇到。
    发表于 07-25 10:53 956次阅读

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

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

    C语言回调函数学习

    对指针的应用是C语言编程的精髓所在,而回调函数就是C语言里面对函数指针的高级应用。简而言之,回调
    发表于 05-27 09:44 7204次阅读

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

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

    C语言指针函数函数指针详细介绍

    C语言指针函数函数指针详细介绍。。。。。。。
    发表于 03-04 15:27 5次下载

    C语言标准库函数

    C语言标准库函数,使用C语言编程时,常用到的函数
    发表于 05-11 16:41 0次下载

    C语言scanf函数详解

    C语言scanf函数详细解释
    发表于 05-15 09:20 6次下载

    基于C语言标准库函数

    基于C语言标准库函数
    发表于 10-23 17:41 11次下载
    基于<b class='flag-5'>C</b><b class='flag-5'>语言</b>标准库<b class='flag-5'>函数</b>

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

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

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

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

    C语言函数速查手册

    c\c++语言函数速查手册
    发表于 06-30 14:48 11次下载

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

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

    C语言-函数的定义、声明、传参

    C语言函数是非常重要的知识点,一个完整的C语言程序就是由主函数和各个子
    的头像 发表于 08-14 09:57 1935次阅读

    C语言函数参数介绍

    C语言数组元素作函数实参 数组元素可以用作函数实参,不能用作形参。 C语言在用数组元素作
    的头像 发表于 03-10 14:30 2371次阅读

    c语言源程序main函数的位置

    C语言源程序中的main函数是程序的入口点,它被认为是C语言程序的起点。在执行程序时,操作系统将
    的头像 发表于 11-24 10:23 2496次阅读