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

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

3天内不再提示

C语言的几种位操作运算程序详细说明

Wildesbeast 来源:福星电子网 作者:福星电子网 2020-07-18 12:00 次阅读

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

}

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

    关注

    180

    文章

    7604

    浏览量

    136842
  • 程序
    +关注

    关注

    117

    文章

    3787

    浏览量

    81049
  • 运算
    +关注

    关注

    0

    文章

    130

    浏览量

    25793
收藏 人收藏

    评论

    相关推荐

    深入理解C语言:循环语句的应用与优化技巧

    程序设计中,我们常常需要重复执行某一段代码。为了提高效率和简化代码,循环语句应运而生。C语言作为一门经典的编程语言,提供了多种循环控制结构,帮助
    的头像 发表于 12-07 01:11 154次阅读
    深入理解<b class='flag-5'>C</b><b class='flag-5'>语言</b>:循环语句的应用与优化技巧

    技术干货驿站 ▏深入理解C语言:掌握C语言条件判断,从if到switch的应用

    语句和条件运算符。这些结构不仅增强了代码的灵活性,还提高了程序的可读性和可维护性。本文将深入探讨C语言中的主要条件判断语句,包括它们的语法、使用方法及实际应用,通过
    的头像 发表于 11-09 01:10 326次阅读
    技术干货驿站 ▏深入理解<b class='flag-5'>C</b><b class='flag-5'>语言</b>:掌握<b class='flag-5'>C</b><b class='flag-5'>语言</b>条件判断,从if到switch的应用

    C语言指针运算符详解

    C语言中,当你有一个指向数组中某个元素的指针时,你可以对该指针执行某些算术运算,例如加法或减法。这些运算可以用来遍历数组中的元素,如ptr[i]等价于*(ptr + i)。然而,如果
    的头像 发表于 10-30 11:16 255次阅读

    C语言与Java语言的对比

    C语言和Java语言都是当前编程领域中的重要成员,它们各自具有独特的优势和特点,适用于不同的应用场景。以下将从语法特性、内存管理、跨平台性、性能、应用领域等多个方面对C
    的头像 发表于 10-29 17:31 342次阅读

    技术干货驿站 ▏解锁C语言高效编程秘诀:深入解析运算符与优先级

    C语言的学习过程中,运算符的使用是不可忽视的重要环节。本文将继续深入探讨C语言中的运算符,重点
    的头像 发表于 10-13 08:09 255次阅读
    技术干货驿站 ▏解锁<b class='flag-5'>C</b><b class='flag-5'>语言</b>高效编程秘诀:深入解析<b class='flag-5'>运算</b>符与优先级

    技术干货驿站 ▏深入理解C语言:编程高手必备,全方位解析运算符的核心技能!

    过程中发挥着重要作用,还对程序的性能和稳定性产生直接影响。继上一期对C语言常量的深入分析后,本文将进一步探讨C语言中的常用
    的头像 发表于 09-18 15:56 355次阅读
    技术干货驿站 ▏深入理解<b class='flag-5'>C</b><b class='flag-5'>语言</b>:编程高手必备,全方位解析<b class='flag-5'>运算</b>符的核心技能!

    hex文件如何查看原c语言代码

    是处理器可以直接执行的指令,而 C 语言代码则是人类可读的高级编程语言代码。 然而,如果你想要从 .hex 文件中获取一些有用的信息或者对程序进行分析,你可以考虑以下
    的头像 发表于 09-02 10:37 2307次阅读

    c语言从右到左的运算符有哪些

    以下是一些主要的从右到左运算C语言运算符: 函数调用运算符 ( () ):当您调用一个函数时,参数列表是从右到左进行求值的。 后置递增
    的头像 发表于 08-20 11:39 963次阅读

    技术干货驿站 ▏深入理解C语言:掌握程序结构知识

    在计算机编程的世界中,C语言被广泛认可为一门强大而高效的编程语言,其简洁的语法和直接的指令使得它成为了许多程序员的首选。了解C
    的头像 发表于 07-27 08:45 1385次阅读
    技术干货驿站 ▏深入理解<b class='flag-5'>C</b><b class='flag-5'>语言</b>:掌握<b class='flag-5'>程序</b>结构知识

    3KW工业变频器电路设计方案详细说明

    3KW工业变频器电路设计方案详细说明
    的头像 发表于 03-19 08:33 943次阅读
    3KW工业变频器电路设计方案<b class='flag-5'>详细说明</b>

    C语言中的域典型的实例

    所谓"域"是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制
    发表于 03-04 11:29 472次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>中的<b class='flag-5'>位</b>域典型的实例

    c语言,c++,java,python区别

    C语言C++、Java和Python是四种常见的编程语言,各有优点和特点。 C语言
    的头像 发表于 02-05 14:11 2393次阅读

    STM32开发中的运算以及操作

    操作。同时,STM32还提供了操作,使得对单个位进行操作更加方便。本文将详细介绍STM32开发中的
    的头像 发表于 02-02 14:38 1651次阅读

    怎么写出效率高、思路清晰的C语言程序

    要用C语言的思维方式来进行程序的构架构建 要有良好的C语言算法基础,以此来实现程序的逻辑构架
    的头像 发表于 01-02 14:20 572次阅读

    嵌入式C语言大神的进阶思路

    熟悉一种或几种CPU架构,掌握几种架构的汇编语言,学会使用反汇编去分析C语言底层运行过程
    的头像 发表于 01-02 09:58 631次阅读