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语言位运算,醍醐灌顶式教学相关推荐

  1. (转)C语言位运算详解

    地址:http://www.cnblogs.com/911/archive/2008/05/20/1203477.html C语言位运算详解 作者:911 说明:本文参考了http://www2.ts ...

  2. c语言位运算负数的实例_巧妙运用C语言位运算

    原标题:巧妙运用C语言位运算 位运算 位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果. 位运算符有: &(按位与) ...

  3. c语言位运算(c语言回文数编程)

    C语言的位运算 <>2;/其实这些符号都是差不多的用法;///PUR0 = PUR0 | 0X20;/,就是相当于R0CONH = R0CONH & 0XFC;/left shif ...

  4. c语言对10万位进行显示,C语言位运算

    满意答案 jtxd0025 2013.08.06 采纳率:59%    等级:9 已帮助:164人 C语言提供的位运算: 运算符 含义 & 按位与 | 按位或 ∧ 按位异或 ∽ 取反 < ...

  5. c语言位运算负数的实例_一招教你学会C语言中位运算

    程序中的所有数在计算机内存中都是以二进制的形式储存的.位运算说穿了,就是直接对整数在内存中的二进制位进行操作.注意,位运算只针对于整数进行操作. 运算符号 运算规则 1.&与运算:对应两个二进 ...

  6. sizeof是c语言的一种运算符,C语言位运算和sizeof运算符详解

    位运算和sizeof运算符 C语言中提供了一些运算符可以直接操作整数的位,称为位运算,因此位运算中的操作数都必须是整型的.位运算的效率是比较高的,而且位运算运用好的话会达到意想不到的效果.位运算主要有 ...

  7. c语言位运算负数的实例_0基础学习C语言第三章:位运算

    C语言提供了六种位运算符: & 按位与 | 按位或 ^ 按位异或 ~ 取反 << 左移,相当与*2 >> 右移,正数高位补0,负数由计算机决定 循环左移k次 (x< ...

  8. 单片机c语言位运算写法,单片机与嵌入式系统中C语言的位运算小记

    原标题:单片机与嵌入式系统中C语言的位运算小记 编了个PIC的项目,对里的还是蛮有感悟的,特此记录一下. 譬如说,在程序中定义了一个char类型的变量, purge_short_enable_flag ...

  9. c语言位运算+乘法,关于c语言中的位运算。。。

    标签:c++ 位运算是一种针对二进制数的一种运算 位运算 共有六种 都有其对应得操作符号 &      (and)      位于 |        (or)         位或 ~     ...

最新文章

  1. SAP HUM 如何将2个HU合并并成一个?
  2. 详细透彻的分析DM9000网卡驱动程序(4)
  3. 面向对象设计原则之一:单一职责原则
  4. 服务器怎么查看数据库文件,怎么查看服务器上的数据库文件
  5. Spring MVC的web.xml配置详解(转)
  6. hadoop的序列化与java的序列化区别
  7. java se 6 mac_Mac OS X “打开xx软件, 你需要一个Java SE 6运行环境”问题解决
  8. 【论文笔记】Deep Learning Face Representation from Predicting 10,000 Classes
  9. IE 和FF的一个细小差别
  10. android通讯录加密,Android获取通讯录并上传(包含通讯录加密)
  11. 从开锁到中年危机的杂谈
  12. 数据仓库系列之元数据管理
  13. 68个Python内置函数详解,进阶必备
  14. C++ 控制台创建窗口,加载png图片,实现悬浮窗
  15. Android和C#实现实时视频传输Demo
  16. SPA Matlab Code(转载)
  17. 如何评判刀片服务器性能,刀片服务器优点与刀片服务器缺点
  18. 前端JS学习笔记——内置对象Math、Date 、Array、String
  19. Word快捷键大全 Word2013/2010/2007/2003常用快捷键大全
  20. cmd启动MySQL

热门文章

  1. 牛客网(剑指offer) 第二十题 包含min函数的栈
  2. LeetCode Algorithm 414. 第三大的数
  3. 2017/Province_Java_A/2、9数算式
  4. 深度学习——02、深度学习入门 1-7
  5. SVN基本的理解和使用
  6. ubuntu16.04+anaconda3+python3.6安装OpenCV3
  7. TMS320F28335之GPIO原理
  8. 【Linux系统编程】浅谈进程地址空间与虚拟存储空间
  9. gsp计算机管理系的功能,药博士医药企业GSP管理系统功能介绍
  10. Codeforces 986B. Petr and Permutations(没想到这道2250分的题这么简单,早知道就先做了)