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);






审核编辑:刘清

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

    关注

    5083

    文章

    19129

    浏览量

    305398
  • C语言
    +关注

    关注

    180

    文章

    7605

    浏览量

    136885
  • 位操作
    +关注

    关注

    1

    文章

    12

    浏览量

    8564

原文标题:位操作运算

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

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

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

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

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

    嵌入式SQL语言概述

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

    嵌入式C语言进阶之道

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

    嵌入式系统C语言操作的移植与优化

    嵌入式系统C语言操作的移植与优化   单片机的应用越来越广泛,种类也越来越多。由于嵌入式
    发表于 03-29 15:15 1096次阅读

    嵌入式C实现延时程序的不同变量的区别 几种Linux嵌入式开发环境的简单介绍

    嵌入式C实现延时程序的不同变量的区别 几种Linux嵌入式开发环境的简单介绍 ARM嵌入式开发基
    发表于 04-14 07:24 1649次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>C</b>实现延时程序的不同变量的区别 几种Linux<b class='flag-5'>嵌入式</b>开发环境的<b class='flag-5'>简单</b><b class='flag-5'>介绍</b>

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

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

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

    嵌入式系统常用C语言基本语法概要
    发表于 10-20 12:51 6次下载
    <b class='flag-5'>嵌入式</b>系统<b class='flag-5'>常用</b>的<b class='flag-5'>C</b><b class='flag-5'>语言</b>基本语法概要

    标准c语言嵌入式,嵌入式C语言C语言的区别

    嵌入式C语言C语言的区别:最常用的系统编程语言
    发表于 10-20 14:06 6次下载
    标准<b class='flag-5'>c</b><b class='flag-5'>语言</b>与<b class='flag-5'>嵌入式</b>,<b class='flag-5'>嵌入式</b><b class='flag-5'>C</b><b class='flag-5'>语言</b>与<b class='flag-5'>C</b><b class='flag-5'>语言</b>的区别

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

    C语言中,特别是在嵌入式的开发中,操作是很常用的一个知识点,涉及到按
    的头像 发表于 02-10 14:19 1503次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言中</b>必须要掌握的<b class='flag-5'>位</b>运算<b class='flag-5'>操作</b>

    嵌入式C语言中堆和栈的区别

    嵌入式C语言中,堆和栈都是用来存储变量的内存区域,但它们在存储和使用变量方面有很大的区别。
    的头像 发表于 04-14 11:45 1415次阅读

    嵌入式C操作的应用

    嵌入式运算是嵌入式系统中常用的优化技巧之一,它可以通过位运算操作来实现一些常见的数学运算、逻辑运算等,从而提高程序的执行效率。
    发表于 05-20 16:52 729次阅读