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

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

3天内不再提示

简单介绍嵌入式C语言中常用的位操作

硬件会 来源:硬件会 2023-02-23 10:36 次阅读

嵌入式C语言中,使用位操作程序有很好的可读性。以下就简单介绍以下常用的位操作。

463e9b8a-b2c7-11ed-bfe3-dac502259ad0.png

常见的二进制位的变换操作

功能 示例 位运算
去掉最后一位 (101101-->10110) x>>1
在最后加一个0 (101101-->1011010) x<<1
在最后加一个1 (101101-->1011011) (x<<1)+1 或 (x<<1)|1 
把最后一位变成1 (101100-->101101) x|1
把最后一位变成0 (101101-->101100) x|1-1
最后一位取反 (101101-->101100) x^1
从右数第K位变成1 (101001-->101101,K=3) x|(1<<(K-1))
从右数第K位变成0 (101101-->101001,K=3) x&(~(1<<(K-1)))
从右数第K位取反 (101001-->101101,K=3) x^(1<<(K-1)
取末三位 (101101-->101) x&7
取末K位 (101101-->1101,K=4) x&15
取右数第K位 (1101101-->1,K=4) (x>>(K-1))&1
把末K位变成1 (101001-->101111,K=4) x|(1<
把末K位取反 (101001-->100110,K=4) x^(1<
把右边连续的1变成0 (100101111->100100000) x&(x+1)
把右起第一个0变成1 (100101111->100111111) x|(x+1)
把右边连续的0变成1 (11011000->11011111) x|(x-1)
取右边连续的1 (11011111->11111) (x^(x+1))>>1
去掉右起第一个1的左边 (100101000->1000) x&(-x)
判断第7位是否为1 if(x&0x40){……}
字节读取 (x>>0)&0x000000FF 获取第0个字节
字节读取 (x>>8)&0x000000FF 获取第1个字节
字节读取 (x>>16)&0x000000FF 获取第2个字节
判断奇偶数 if(x&1==1){……}
判断两个数是否异号 int x = -1, y = 2;
bool f = ((x ^ y) < 0); // true
int x = 3, y = 2;
bool f = ((x ^ y) < 0); // false
求2的n次方 1<
高低位交换 unsigned short a = 34520;
a = (a >> 8) | (a << 8);






审核编辑:刘清

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

    关注

    4983

    文章

    18286

    浏览量

    288492
  • C语言
    +关注

    关注

    180

    文章

    7533

    浏览量

    128769
  • 位操作
    +关注

    关注

    1

    文章

    12

    浏览量

    8510

原文标题:位操作运算

文章出处:【微信号:硬件会,微信公众号:硬件会】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    嵌入式系统常用C语言基本语法概要

    嵌入式系统常用C语言基本语法概要
    发表于 12-08 09:57

    嵌入式入门】C语言常用操作相关总结

    哈喽,大家好,我是一名从事物联网嵌入式培训工作的老师,现在为大家总结一下C语言常用操作。希望
    发表于 08-27 12:01

    嵌入式入门学习书籍

    Linux C语言程序设计基础教程》本书凝聚了华清远见众多老师的心血,作为嵌入式专业的C语言教材,全书共有11章,每章内容概况为:第1章
    发表于 01-08 15:28

    C语言入门书籍《嵌入式Linux C语言程序设计基础教程》全本下载!!

    嵌入式专业的C语言教材。全书共11章,第1章介绍嵌入式Linux下常用
    发表于 03-02 17:09

    嵌入式linux学习书籍汇总

    C语言中用户自定义的数据类型。第10章介绍嵌入式Linux C语言的高级用法。第11章
    发表于 06-08 08:31

    嵌入式开发中常用的总线与接口汇总

    盘点嵌入式开发中常用的总线与接口
    发表于 02-01 07:25

    c语言中常用的宏定义有哪些?

    c语言中常用的宏定义有哪些?
    发表于 04-28 06:01

    嵌入式系统常用C语言基本语法有哪些

    嵌入式系统常用C语言基本语法概要
    发表于 10-27 08:33

    嵌入式C语言C语言的区别

    嵌入式C语言C语言的区别:最常用的系统编程语言
    发表于 10-27 06:52

    嵌入式C基础知识知识点汇总

    前言本人今天刚开始学stm32,嵌入式C是stm32学习的基础,先贴张嵌入式开发的技能树:一、运算C
    发表于 12-15 09:04

    嵌入式C语言中常见不常用的语法有哪些

    嵌入式C语言中常见不常用的语法1. 不定参数需要包含头文件#include "stdarg.h"头文件里主要包括一个变量类型va_list,三个函数va_start,va_arg
    发表于 12-15 06:34

    C语言中使用嵌入式SQL访问Oracle数据库的方法

    使用C语言开发Oracle应用程序通常有两种方法。一是利用嵌入式SQL语言,将SQL作为子语言嵌入
    发表于 12-15 06:35

    嵌入式SQL语言概述

    的SQL与前面介绍的交互SQL有一些不同的操作方式下面以嵌入 C 语言为例,exec 关键字是
    发表于 12-21 06:55

    嵌入式C语言进阶之道

    C 语言的书有一大堆,嵌入 C 语言的书也不少,但都不过是简单
    发表于 04-19 10:15

    C语言中必须要掌握的位运算操作

    C语言中,特别是在嵌入式的开发中,位操作是很常用的一个知识点,涉及到按位(bit)操作的地方也是很常见的。本文分享一些C
    的头像 发表于 02-10 14:19 733次阅读
    C<b class='flag-5'>语言中</b>必须要掌握的位运算<b class='flag-5'>操作</b>