C语言位运算,醍醐灌顶式教学
C语言位运算,醍醐灌顶式教学
学习计算机的都了解,位运算其实以一种比较快速的运算,对于大型应用程序,可以节约很多运算时间。但是很多人都不了解,下面我来给大家大致讲解一下C语言中各种位运算符。(小声bb,不好的地方请多多包涵)
- 位运算
- 定义:程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。(盗用了一下百度的定义)
位运算符
下面我用a, b两个整型变量进行举例
按位与
- 符号:&
- 用法:将a, b转换为二进制,末尾对其。如果对应位二进制都为1则该位1,否则为0。
例如:
int a = 5, b= 3;//a = 101, b = 11;// 101// 11 a & b == 1//-------------// 001
按位或
- 符号:|
- 用法:将a, b转换为二进制,末尾对其。如果对应位二进制都为0则该位0,否则为1。
例如:
int a = 5, b= 3;//a = 101, b = 11;// 101// 11 a | b == 7//-------------// 111
按位异或
- 符号:^
- 用法:将a, b转换为二进制,末尾对其。如果对应位二进制相同,则该位0,否则为1。
例如:
int a = 5, b= 3;//a = 101, b = 11;// 101// 11 a ^ b == 6//-------------// 110
按位取反
- 符号:~
- 用法:~是单目运算符,将a, b转换为二进制,每一位上0改为1,1改为0。
例如:
int a = 5, b= 3;//a = 101, b = 11;// 101 011// ------------- // *010 *000 *代表29个1 ,因为int类型一般占4个字节,一个字节8个二进制位,// ·a == -6, b == -4
(至于这里为什么是 -6 -4,涉及一些原码补码反码的知识。大家记住正数按位取反,就加1再取反;负数按位取反,取反再减1)
左移
- 符号:<<
- 用法:一元运算符,将一个数转换为2进制后,全部左移N位,右补0。(a << N)
例如:
int a = 5;a << 2;//a = 101;// 101// 左移2位// 10100 // a << 2 == 20
在其未超过其范围之前,a << N。相当于 a * (2^N)。
右移
- 符号:>>
- 用法:一元运算符,将一个数转换为2进制后,全部右移N位,移动到右端的低位被舍弃。(a >> N)
例如:
int a = 19;a >> 2;//a = 10011;// 10011// 右移2位// 100 // a >> 2 == 4
在其未超过其范围之前,a >> N。相当于 a / (2^N)。(是C语言中的整型相除哦)
当然位运算用处很多,很多时候都会起到意想不到的作用,大家感兴趣可以多多了解呀。
看到这,点个赞再走吧。嘤嘤嘤!!!
C语言位运算,醍醐灌顶式教学相关推荐
- (转)C语言位运算详解
地址:http://www.cnblogs.com/911/archive/2008/05/20/1203477.html C语言位运算详解 作者:911 说明:本文参考了http://www2.ts ...
- c语言位运算负数的实例_巧妙运用C语言位运算
原标题:巧妙运用C语言位运算 位运算 位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果. 位运算符有: &(按位与) ...
- c语言位运算(c语言回文数编程)
C语言的位运算 <>2;/其实这些符号都是差不多的用法;///PUR0 = PUR0 | 0X20;/,就是相当于R0CONH = R0CONH & 0XFC;/left shif ...
- c语言对10万位进行显示,C语言位运算
满意答案 jtxd0025 2013.08.06 采纳率:59% 等级:9 已帮助:164人 C语言提供的位运算: 运算符 含义 & 按位与 | 按位或 ∧ 按位异或 ∽ 取反 < ...
- c语言位运算负数的实例_一招教你学会C语言中位运算
程序中的所有数在计算机内存中都是以二进制的形式储存的.位运算说穿了,就是直接对整数在内存中的二进制位进行操作.注意,位运算只针对于整数进行操作. 运算符号 运算规则 1.&与运算:对应两个二进 ...
- sizeof是c语言的一种运算符,C语言位运算和sizeof运算符详解
位运算和sizeof运算符 C语言中提供了一些运算符可以直接操作整数的位,称为位运算,因此位运算中的操作数都必须是整型的.位运算的效率是比较高的,而且位运算运用好的话会达到意想不到的效果.位运算主要有 ...
- c语言位运算负数的实例_0基础学习C语言第三章:位运算
C语言提供了六种位运算符: & 按位与 | 按位或 ^ 按位异或 ~ 取反 << 左移,相当与*2 >> 右移,正数高位补0,负数由计算机决定 循环左移k次 (x< ...
- 单片机c语言位运算写法,单片机与嵌入式系统中C语言的位运算小记
原标题:单片机与嵌入式系统中C语言的位运算小记 编了个PIC的项目,对里的还是蛮有感悟的,特此记录一下. 譬如说,在程序中定义了一个char类型的变量, purge_short_enable_flag ...
- c语言位运算+乘法,关于c语言中的位运算。。。
标签:c++ 位运算是一种针对二进制数的一种运算 位运算 共有六种 都有其对应得操作符号 & (and) 位于 | (or) 位或 ~ ...
最新文章
- SAP HUM 如何将2个HU合并并成一个?
- 详细透彻的分析DM9000网卡驱动程序(4)
- 面向对象设计原则之一:单一职责原则
- 服务器怎么查看数据库文件,怎么查看服务器上的数据库文件
- Spring MVC的web.xml配置详解(转)
- hadoop的序列化与java的序列化区别
- java se 6 mac_Mac OS X “打开xx软件, 你需要一个Java SE 6运行环境”问题解决
- 【论文笔记】Deep Learning Face Representation from Predicting 10,000 Classes
- IE 和FF的一个细小差别
- android通讯录加密,Android获取通讯录并上传(包含通讯录加密)
- 从开锁到中年危机的杂谈
- 数据仓库系列之元数据管理
- 68个Python内置函数详解,进阶必备
- C++ 控制台创建窗口,加载png图片,实现悬浮窗
- Android和C#实现实时视频传输Demo
- SPA Matlab Code(转载)
- 如何评判刀片服务器性能,刀片服务器优点与刀片服务器缺点
- 前端JS学习笔记——内置对象Math、Date 、Array、String
- Word快捷键大全 Word2013/2010/2007/2003常用快捷键大全
- cmd启动MySQL
热门文章
- 牛客网(剑指offer) 第二十题 包含min函数的栈
- LeetCode Algorithm 414. 第三大的数
- 2017/Province_Java_A/2、9数算式
- 深度学习——02、深度学习入门 1-7
- SVN基本的理解和使用
- ubuntu16.04+anaconda3+python3.6安装OpenCV3
- TMS320F28335之GPIO原理
- 【Linux系统编程】浅谈进程地址空间与虚拟存储空间
- gsp计算机管理系的功能,药博士医药企业GSP管理系统功能介绍
- Codeforces 986B. Petr and Permutations(没想到这道2250分的题这么简单,早知道就先做了)