侵权投诉

C语言位运算实例讲解

2018-03-19 08:44 次阅读

C语言位运算

有6种: &, | , ^(亦或), <<(左移), >>(右移)。

注意:参与位运算的元素必须是int型或者char型,以补码形式出现。

按位与&

&运算常应用于:

迅速清零

保留指定位

判断奇偶性

a & 1 = 1;则a为奇数

b & 1 = 0;则a为偶数

按位或|

按位或(“|”)用途:设定数据的指定位

按位异或^

异或 就是位相同等于零,相异等于1

按位异或作用:

1.定位反转

2.交换数值

//交换a和b的值

按位取反~

左移、右移

让二进制左移N位,高位丢弃,低位补0,得到的 新值 = 原值*2^N,

作用:实现二倍乘除运算(右移几位相当于除于二的几次方。左移几位,相当于乘上二的几次方。)

问题:int是有符号类型,左移可能会把符号左移出去,发生溢出。

原文标题:C语言位运算+实例讲解

文章出处:【微信号:weixin21ic,微信公众号:21ic电子网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

Keil uVision4的使用详解教程概述

单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为 CPU 可以执行的机器码有....
发表于 07-13 08:00 8次 阅读
Keil uVision4的使用详解教程概述

分享 郭天祥 十天学会C语言和51单片机视频教程+代码

郭天祥 郭天祥 十天学会C语言和51单片机 详细教程源码 回复可得 链接:https://pan.baidu.com/s/1uWWpG-o_EVscRZ3ys...
发表于 07-12 21:31 83次 阅读
分享 郭天祥 十天学会C语言和51单片机视频教程+代码

如何把C++的源程序改写成C语言

由于C++解释器比C语言解释器占用的存储空间要大500k左右。为了节省有限的存储空间,降低成本,同时也为了提高效率,将用C+...
发表于 07-11 09:34 651次 阅读
如何把C++的源程序改写成C语言

关于ARM的三种中断调试方法介绍

在整个流程中,用户首先需要建立工程并对工程做初步的配置,包括配置处理器和配置调试设备。编辑工程文件,....
发表于 07-10 16:01 41次 阅读
关于ARM的三种中断调试方法介绍

使用C语言写出的九九乘法表

本文档的主要内容详细介绍的是使用C语言写出的九九乘法表资料合集免费下载。
发表于 07-10 08:00 26次 阅读
使用C语言写出的九九乘法表

C语言之结构体的声明与定义

我们刚刚申请了一个名叫Info的结构体类型,那么理论上我们可以像声明其他变量的操作一样,去声明我们的....
的头像 玩转单片机 发表于 07-09 09:06 159次 阅读
C语言之结构体的声明与定义

如何把C++的源程序改写成C语言

由于C++解释器比C语言解释器占用的存储空间要大500k左右。为了节省有限的存储空间,降低成本,同时也为了提高效率,将用C+...
发表于 07-08 20:51 236次 阅读
如何把C++的源程序改写成C语言

单片机C语言程序设计的详细资料

C语言目前己成为电子工程师进行单片机系统开发时的常用编程语言。用C语言来编写目标系统软件,会大大缩短....
发表于 07-07 14:48 66次 阅读
单片机C语言程序设计的详细资料

浅谈2020年六大主流编程语言

目前,计算机语言的总数总计达9000种。但是,其中只有50种编程语言是较为流行的。今天,小编就给大家....
的头像 如意 发表于 07-03 11:36 361次 阅读
浅谈2020年六大主流编程语言

单片机教程之C语言的程序设计说明

C51是在标准C的基础上,根据单片机存储器硬件结构及内部资源,扩展了相应的数据类型和变量,而C51在....
发表于 07-02 17:45 59次 阅读
单片机教程之C语言的程序设计说明

c语言宏定义的使用方法

当宏作为常量使用时,C程序员习惯在名字中只使用大写字母。但是并没有如何将用于其他目的的宏大写的统一做....
发表于 07-02 15:04 104次 阅读
c语言宏定义的使用方法

C语言二级指针的用法与原理

提到指针,我们都知道指针是用来存储一个变量的地址。所以,当我们定义了一个指向指针的指针的时候(poi....
发表于 07-02 14:52 110次 阅读
C语言二级指针的用法与原理

HW资料华-为硬件(硬件开发C语言PCB设计天线通信)

链接:https://pan.baidu.com/s/1HFxkb4O1jAZvCEccWVcd4w 提取码:stns 回复可见提取码,资源需求可加q1051514663 ...
发表于 07-01 18:20 92次 阅读
HW资料华-为硬件(硬件开发C语言PCB设计天线通信)

C语言和PHP,新手选择哪个比较好?

计科专业从事嵌入式开发多年,从现在的市场行情以及就业的机会上讲php的就业空间还是大于C语言,但并不....
的头像 如意 发表于 07-01 16:15 146次 阅读
C语言和PHP,新手选择哪个比较好?

Python的发展趋势,未来可期

首先,当前Python作为一门流行程度比较高的全场景编程语言,在IT互联网行业和一部分传统行业已经有....
的头像 如意 发表于 07-01 10:19 265次 阅读
Python的发展趋势,未来可期

怎么样才能在Keil C51环境下实现64位浮点库的设计

为解决Keil C51环境下无法进行64位双精度计算的问题,采用分部存储和分部计算的方法,设计了在K....
发表于 07-01 08:00 20次 阅读
怎么样才能在Keil C51环境下实现64位浮点库的设计

怎么样才能使用Keil C51开发大型嵌入式程序

 结合在8051系列单片机平台上的实际开发应用的经验,介绍用 Keil C在8051单片机上进行大型....
发表于 07-01 08:00 20次 阅读
怎么样才能使用Keil C51开发大型嵌入式程序

详谈选择排序算法的定义和过程

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数....
的头像 如意 发表于 06-30 17:06 108次 阅读
详谈选择排序算法的定义和过程

C语言模拟实现memmove函数

memmove用于从src拷贝count个字节到dest,如果目标区域和源区域有重叠的话,memmo....
的头像 如意 发表于 06-29 17:53 115次 阅读
C语言模拟实现memmove函数

C语言模拟实现memcpy函数

memcpy指的是c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起....
的头像 如意 发表于 06-29 17:29 197次 阅读
C语言模拟实现memcpy函数

ISD4002语音录放电路的设计C语言程序免费下载

  本文档的主要内容详细介绍的是ISD4002语音录放电路的设计C语言程序免费下载。
发表于 06-29 17:20 19次 阅读
ISD4002语音录放电路的设计C语言程序免费下载

简易LCD示波器设计的C语言程序免费下载

本文档的与内容详细介绍的是简易LCD示波器设计的C语言程序免费下载。
发表于 06-29 17:20 32次 阅读
简易LCD示波器设计的C语言程序免费下载

液晶GPS定位信息显示器的设计C语言程序免费下载

本文档的主要内容详细介绍的是液晶GPS定位信息显示器的设计C语言程序免费下载。
发表于 06-29 17:20 38次 阅读
液晶GPS定位信息显示器的设计C语言程序免费下载

超声波测距器设计的C语言程序免费下载

本文档的主要内容详细介绍的是超声波测距器设计的C语言程序免费下载。
发表于 06-29 17:20 40次 阅读
超声波测距器设计的C语言程序免费下载

远程电话控制器设计的C语言程序免费下载

本文档的主要内容详细介绍的是远程电话控制器设计的C语言程序免费下载。
发表于 06-29 17:20 38次 阅读
远程电话控制器设计的C语言程序免费下载

C语言模拟实现strcmp函数

C语言模拟实现strcmp函数
的头像 如意 发表于 06-29 16:51 223次 阅读
C语言模拟实现strcmp函数

C语言模拟实现strstr函数

strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数....
的头像 如意 发表于 06-29 16:36 380次 阅读
C语言模拟实现strstr函数

C语言模拟实现strcat函数

C语言模拟实现strcat函数
的头像 如意 发表于 06-29 16:18 185次 阅读
C语言模拟实现strcat函数

C语言模拟实现strcpy

strcpy是一种C语言的标准库函数,strcpy把从src地址开始且含有’\0’结束符的字符串复制....
的头像 如意 发表于 06-29 15:54 151次 阅读
C语言模拟实现strcpy

C语言模拟实现strlen的步骤

strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是....
的头像 如意 发表于 06-29 15:48 168次 阅读
C语言模拟实现strlen的步骤

图文详解:数组和指针的传参

数组传参时,会退化为指针,所以我们先来看看什么是退化!
的头像 如意 发表于 06-29 15:34 154次 阅读
图文详解:数组和指针的传参

详谈C语言和C++的区别和联系

在学习了C语言和C++之后,这两者之间的区别我们需要仔细的捋一捋!
的头像 如意 发表于 06-29 14:56 112次 阅读
详谈C语言和C++的区别和联系

单片机程序开发的语言怎么选择

单片机程序的开发可以使用的两种语言,分别是C语言和汇编语言。这里要指出的一件事是,这不是嵌入式单片机....
的头像 电子魔法师 发表于 06-29 11:22 347次 阅读
单片机程序开发的语言怎么选择

JavaSE的基础教程讲解

Java确实是从C语言和C++语言继承了许多成份,甚至可以将Java看成是类C语言发展和衍生的产物。....
发表于 06-29 08:00 16次 阅读
JavaSE的基础教程讲解

Python基础教程第三版PDF电子书免费下载

《Python基础教程 第3版》包括Python程序设计的方方面面:首先,从Python的安装开始,....
发表于 06-29 08:00 115次 阅读
Python基础教程第三版PDF电子书免费下载

3D数学基础图形与游戏开发PDF电子书免费下载

 本书主要研究隐藏在3D几何世界背后的数学问题。3D数学是一门与计算几何相关的学科,计算几何则是研究....
发表于 06-29 08:00 72次 阅读
3D数学基础图形与游戏开发PDF电子书免费下载

C语言精华知识:表驱动法编程实践

根据字典中的部首检字表查找读音未知的汉字就是典型的表驱动法,即以每个字的字形为依据,计算出一个索引值....
的头像 玩转单片机 发表于 06-28 17:10 197次 阅读
C语言精华知识:表驱动法编程实践

聊聊我为什么热爱开源

后面的学习过程中,接触了单片机,我发现这东西也很有趣,能做点小东西,做个时钟、小车、LED小蛮腰。。....
的头像 玩转单片机 发表于 06-28 17:07 175次 阅读
聊聊我为什么热爱开源

Linux TraceEvent - 史上最长宏定义

看完了例子,我们就该看代码实现了。讲真,这是我见过的最长的宏展开了。之前在qemu上看到的那个hmp....
的头像 Linuxer 发表于 06-28 09:34 237次 阅读
Linux TraceEvent - 史上最长宏定义

Python快速入门手册免费下载

实际上 C 语言跟 Python 是有很密切的交际的。 当我们从 Python 官方网站下载并安装好....
发表于 06-28 08:00 34次 阅读
Python快速入门手册免费下载

在C语言中,全局变量滥用的后果是什么

01 啥是全局变量 说起全局变量,就不得不提到全局变量,局部变量,静态全局变量,静态局部变量,这些都....
发表于 06-24 17:14 84次 阅读
在C语言中,全局变量滥用的后果是什么

盘点一些在C语言中比较容易犯的错误

本题中的#运算符可以利用宏参数创建字符串。##运算符和#运算符一样也可以用于类函数宏的替换部分。另外....
发表于 06-24 16:45 41次 阅读
盘点一些在C语言中比较容易犯的错误

C语言的策略模式提高了程序的可维护性和扩展性

这里先插一点题外话,在C语言中,实现封装、继承、隐藏、多态等等特性,是完全没有问题的。但是在使用过程....
发表于 06-24 16:29 50次 阅读
C语言的策略模式提高了程序的可维护性和扩展性

从技术学习和实际运用的角度来看C/C++和Java的区别

关于C语言和C++的学习路线终于梳理完了。当然我也只能从我曾经近3年的通信公司后台开发经历和目之所及....
发表于 06-24 16:16 71次 阅读
从技术学习和实际运用的角度来看C/C++和Java的区别

C语言流程控制的详细资料概述

学习C语言必备,少走弯路
发表于 06-24 10:59 39次 阅读
C语言流程控制的详细资料概述

c语言入门:c语言的具体结构

变量就是可以变化的量,而每个变量都会有一个名字(标识符)。变量占据内存中一定的存储单元。使用变量之前....
的头像 玩转单片机 发表于 06-23 15:38 345次 阅读
c语言入门:c语言的具体结构

为什么要将C语言作为入门语言?

编程是向计算机发出指令以执行特定任务或执行指令的行为,目前专业行业和学术界使用数百种编程语言。一个人....
的头像 如意 发表于 06-23 15:13 168次 阅读
为什么要将C语言作为入门语言?

大学生如何学习FPGA初学者怎么学FPGA

无论是从自身的发展,还是从FPGA所拥有的巨大市场来讲,学习FPGA都是一个不错的选择,对大家来说FPGA技术可能还是新...
发表于 06-23 15:12 293次 阅读
大学生如何学习FPGA初学者怎么学FPGA

算法:计算Fibonacci number的六个方法

算法:计算Fibonacci number的六个方法
的头像 如意 发表于 06-22 17:27 221次 阅读
算法:计算Fibonacci number的六个方法

C语言算法分析:求最长的递增数列

求最长的递增数列(Longest Increasing sequence, LIS)是一个比较常见的....
的头像 如意 发表于 06-22 14:57 191次 阅读
C语言算法分析:求最长的递增数列

虚拟机:编译器对C函数的名字修饰

虚拟机:编译器对C函数的名字修饰
的头像 如意 发表于 06-22 11:44 320次 阅读
虚拟机:编译器对C函数的名字修饰

详解C语言二分查找算法细节

我相信对很多读者朋友来说,编写二分查找的算法代码属于玄学编程,虽然看起来很简单,就是会出错,要么会漏....
的头像 如意 发表于 06-22 09:05 204次 阅读
详解C语言二分查找算法细节

C语言:LeetCode 153寻找旋转排序数组中的最小值

假设按照升序排序的数组在预先未知的某个点上进行了旋转。
的头像 如意 发表于 06-22 08:59 159次 阅读
C语言:LeetCode 153寻找旋转排序数组中的最小值

查找山脉数组最大值的三个方法

何为山脉数组?如果数组 A 是一个山脉数组的话,那它满足如下条件:
的头像 如意 发表于 06-22 08:51 170次 阅读
查找山脉数组最大值的三个方法

使用C语言实现万年历显示的程序设计

本文档的主要内容详细介绍的是使用C语言实现万年历显示的程序设计包括了:一、程序的主要功能,二、系统总....
发表于 06-22 08:00 53次 阅读
使用C语言实现万年历显示的程序设计

有人用过C语言位域吗

typedef struct {u16 b :5; u16 g :6; u16 r :5; } RGB; RGB *rgb; tx=0xf40f;        ...
发表于 06-16 04:35 47次 阅读
有人用过C语言位域吗

知道C语言的用法但是avr里面并没有time这个头文件,是要用中断吗

知道C语言的用法但是avr里面并没有time这个头文件,是要用中断吗, 求大神神助解答 ...
发表于 06-15 05:56 993次 阅读
知道C语言的用法但是avr里面并没有time这个头文件,是要用中断吗

GPIOA->CRH&=0xFFFFFFFO什么意思呀?

问一下GPIOA->CRH&=0xFFFFFFFO什么意思呀?因为我是菜鸟刚看这个根本什么都不知道!!!...
发表于 06-13 09:00 190次 阅读
GPIOA->CRH&=0xFFFFFFFO什么意思呀?

C语言和ASM语言是怎么建立起来的联系呢?

在HVLLC主程序中,有如下定义 extern volatile long *ADCDRV_1ch_Rlt7; // Vout volatile long Vout; ADCDR...
发表于 06-09 14:51 76次 阅读
C语言和ASM语言是怎么建立起来的联系呢?

谁有嵌入式C语言入门视频教程

  本套C语言视频教程是星创客精英训练营的基础教程,由华清远见总监级讲师冯利美花了一个月的时间录制。经过后期音频、视频的...
发表于 06-08 04:35 65次 阅读
谁有嵌入式C语言入门视频教程