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语言
    +关注

    关注

    183

    文章

    7642

    浏览量

    144605
  • 程序
    +关注

    关注

    117

    文章

    3836

    浏览量

    84762
  • 运算
    +关注

    关注

    0

    文章

    132

    浏览量

    26602
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    为什么单片机还在用C语言编程?

    说起单片机我们就会想到C语言,单片机为什么还在用C语言编程?现在有很多很好用的高级语言,如VC、PYTHON、PHP等等,为什么这些
    发表于 11-28 07:37

    C语言操作

    C 语言操作符包括按与( )、按或(|)、按
    发表于 11-21 07:52

    C语言宏拼接运算符典型使用

    C语言中,##运算符(称为[size=16.002px]标记拼接运算符)用于宏定义中将两个标记(token)拼接成一个新的标记。它在预处理阶段处理,常用于动态生成变量名、函数名或类型
    发表于 11-20 08:27

    第4章 C语言基础以及流水灯的实现(4.3 4.4)

    的符号分别是:+、-、*、/、%。 C语言有一个很重要的赋值运算符“=”,前边程序有使用过。在C语言
    的头像 发表于 10-29 15:30 180次阅读

    运算放大器的使用详细说明

    运算放大器权威指南 第三版 获取完整文档资料可下载附件哦!!!! 如果内容有帮助可以关注、点赞、评论支持一下哦~
    发表于 08-01 13:51

    贴片三极管上的印字与真实名称的对照表详细说明

      本文档的主要内容详细介绍的是贴片三极管上的印字与真实名称的对照表详细说明
    发表于 05-28 09:05 110次下载

    瑞芯微rv1106开发资料 rv1106数据手册 rv1106详细说明书免费下载

    瑞芯微rv1106开发资料 rv1106数据手册 rv1106详细说明书免费下载
    的头像 发表于 05-19 11:16 4261次阅读
    瑞芯微rv1106开发资料 rv1106数据手册 rv1106<b class='flag-5'>详细说明</b>书免费下载

    深入理解C语言C语言循环控制

    改变程序的执行流程,使代码更加灵活和可控。本文将详细介绍这些语句的作用及其应用场景,并通过示例代码进行说明。Part.1break语句C语言
    的头像 发表于 04-29 18:49 1735次阅读
    深入理解<b class='flag-5'>C</b><b class='flag-5'>语言</b>:<b class='flag-5'>C</b><b class='flag-5'>语言</b>循环控制

    调试变频器详细说明

    调试变频器是一个复杂但至关重要的过程,它涉及多个参数的设定和调整,以确保变频器能够正常运行并满足特定应用需求。以下是对变频器调试的详细说明。 一、准备工作 1. 选择合适的电机功率:根据实际需求选择
    的头像 发表于 04-25 15:32 1449次阅读

    CRC16-MODBUS+手算+移位运算+C程序+并行运算

    CRC16-MODBUS+手算+移位运算+C程序+并行运算
    发表于 04-22 18:23 0次下载

    C语言的历史及程序介绍

    电子发烧友网站提供《C语言的历史及程序介绍.pdf》资料免费下载
    发表于 04-09 16:10 0次下载

    如何在 树莓派 上编写和运行 C 语言程序

    在本教程中,我将讨论C编程语言是什么,C编程的用途,以及如何在RaspberryPi上编写和运行C程序。本文的目的是为您介绍在Raspber
    的头像 发表于 03-25 09:28 939次阅读
    如何在 树莓派 上编写和运行 <b class='flag-5'>C</b> <b class='flag-5'>语言</b><b class='flag-5'>程序</b>?

    全套C语言培训资料—PPT课件

    与共用体、运算、文件 全套C语言培训资料,共427页,13个章节:C语言概述、
    发表于 03-12 14:50

    UHV系列雷电冲击电压发生器试验装置详细说明使用

    UHV系列 雷电冲击电压发生器试验装置产品详细说明
    发表于 02-21 17:55 17次下载

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

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