`
java-mans
  • 浏览: 11454119 次
文章分类
社区版块
存档分类
最新评论

位操作基础篇之位操作全面总结 .

 
阅读更多

一. 位操作基础

基本的位操作符有与、或、异或、取反、左移、右移这6种,它们的运算规则如下所示:

符号

描述

运算规则 by MoreWindows

&

两个位都为1时,结果才为1

|

两个位都为0时,结果才为0

^

异或

两个位相同为0,相异为1

~

取反

0变1,1变0

<<

左移

各二进位全部左移若干位,高位丢弃,低位补0

>>

右移

各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)

注意以下几点:

1. 在这6种操作符,只有~取反是单目操作符,其它5种都是双目操作符。

2. 位操作只能用于整形数据,对float和double类型进行位操作会被编译器报错。

3. 对于移位操作,在微软的VC6.0和VS2008编译器都是采取算术称位即算术移位操作,算术移位是相对于逻辑移位,它们在左移操作中都一样,低位补0即可,但在右移中逻辑移位的高位补0而算术移位的高位是补符号位。如下面代码会输出-4和3。

  1. inta=-15,b=15;
  2. printf("%d%d\n",a>>2,b>>2);

因为15=0000 1111(二进制),右移二位,最高位由符号位填充将得到0000 0011即3。-15 = 1111 0001(二进制),右移二位,最高位由符号位填充将得到1111 1100即-4(见注1)。

4. 位操作符的运算优先级比较低,因为尽量使用括号来确保运算顺序,否则很可能会得到莫明其妙的结果。比如要得到像1,3,5,9这些2^i+1的数字。写成int a = 1 << i + 1;是不对的,程序会先执行i + 1,再执行左移操作。应该写成int a = (1 << i) + 1;

5. 另外位操作还有一些复合操作符,如&=、|=、 ^=、<<=、>>=。

分享到:
评论

相关推荐

    位运算.docx

    位操作篇共分为基础篇和提高篇,基础篇主要对位操作进行全面总结,帮助大家梳理知识。提高篇则针对各大IT公司如微软、腾讯、百度、360等公司的笔试面试题作详细的解答,使大家能熟练应对在笔试面试中位操作题目。 ...

    PIC单片机实用教程-基础篇(清晰带书签版)

    3.4 面向位操作类指令 3.5 面向常数操作和控制操作类指令 3.6 寻址方式 3.7 数据传递关系 3.8 “内核-寄存器-外围模块”相互关系 第4章 PIC汇编语言程序设计基础 4.1 MPASM汇编器简介 4.2 汇编语言的语句格式 4.3 ...

    Linux操作系统基础第三部分.pptx

    其中每一篇文章都是由精心挑选的作者编写,内容准确、生动、易懂,配有详细的操作步骤和实例,让读者能够快速掌握Linux操作系统的基础知识。Linux操作系统基础PTT的优点不仅在于其内容的全面性和实用性,还表现在...

    LInux操作系统基础-第二部分.pptx

    其中每一篇文章都是由精心挑选的作者编写,内容准确、生动、易懂,配有详细的操作步骤和实例,让读者能够快速掌握Linux操作系统的基础知识。Linux操作系统基础PTT的优点不仅在于其内容的全面性和实用性,还表现在...

    WCF全面解析(下册)

    《WCF全面解析(套装上下册)》由蒋金楠所著,是作者多年潜心研究WCF技术的心血之作,也是这些年来从事WCF开发的经验总结。书如其名,此书涵盖了WCF几乎所有的知识点,并对其底层框架进行了“庖丁解牛”式的剖析,力求...

    网管教程 从入门到精通软件篇.txt

    网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的...

    WCF全面解析(源码)

    《WCF全面解析(套装上下册)》由蒋金楠所著,是作者多年潜心研究WCF技术的心血之作,也是这些年来从事WCF开发的经验总结。书如其名,此书涵盖了WCF几乎所有的知识点,并对其底层框架进行了“庖丁解牛”式的剖析,力求...

    WCF全面解析(上册)

    《WCF全面解析(套装上下册)》由蒋金楠所著,是作者多年潜心研究WCF技术的心血之作,也是这些年来从事WCF开发的经验总结。书如其名,此书涵盖了WCF几乎所有的知识点,并对其底层框架进行了“庖丁解牛”式的剖析,力求...

    WCF全面解析(套装上下册) 高清pdf 带书签 part2(共4)

    《WCF全面解析(套装上下册)》由蒋金楠所著,是作者多年潜心研究WCF技术的心血之作,也是这些年来从事WCF开发的经验总结。书如其名,此书涵盖了WCF几乎所有的知识点,并对其底层框架进行了“庖丁解牛”式的剖析,力求...

    若干源程序资料12.rar

    2012-06-11 21:44 2,279 C语言编一个程序完成64位数据(无符号)的加法,减法运算.txt 2012-06-11 21:43 1,480,155 Direct3D加载3d文件.rar 2012-06-11 21:29 22,102 DSP编程一周通.rar 2012-06-11 21:04 837,926 ...

    软件调试.pdf

    在前5篇内容的基础上,第6篇首先介绍了调试器的发展历史、典型功能和实现方法,然后全面介绍了WinDBG调试器,包括它的模块结构、工作模型、使用方法和主要调试功能的实现细节。. 本书是对软件调试技术在过去50年中...

    PIC单片机实用教程——提高篇 pdg 李学海

    本教程全书共分2篇,即基础篇和提高篇,分2册出版,以适应不同课时和不同专业的需要,也为教师和读者增加了一种可选方案。 同时低分提供其他PIC相关资源 包括: 《PIC单片机入门与实战》 pdf 张明峰 北京航空...

    黑客反汇编揭秘(第二版).part2.rar

    横跨Windows和UNIX两大主流操作系统 全面介绍多种调试工具和方法 目录回到顶部↑第一篇 黑客工具介绍 第1章 携黑客工具启程 2 1.1 调试器 2 1.2 反汇编器 6 1.3 反编译器 8 1.4 十六进制编辑器 10 1.5 解包...

    C#开发实战1200例+第1卷.part2

    第1篇 c#编程基础篇 第1章 c#开发环境的使用 第2章 c#语言基础应用 第3章 字符串处理技术 第4章 数组和集合的使用 第5章 面向对象编程技术 第2篇 windows窗体篇 第7章 windows窗体基础 第8章 特色窗体界面 第9章 ...

    C#开发实战1200例+第1卷.part5

    第1篇 c#编程基础篇 第1章 c#开发环境的使用 第2章 c#语言基础应用 第3章 字符串处理技术 第4章 数组和集合的使用 第5章 面向对象编程技术 第2篇 windows窗体篇 第7章 windows窗体基础 第8章 特色窗体界面 第9章 ...

    C#开发实战1200例+第1卷.part7

    第1篇 c#编程基础篇 第1章 c#开发环境的使用 第2章 c#语言基础应用 第3章 字符串处理技术 第4章 数组和集合的使用 第5章 面向对象编程技术 第2篇 windows窗体篇 第7章 windows窗体基础 第8章 特色窗体界面 第9章 ...

    C#开发实战1200例+第1卷.part3

    第1篇 c#编程基础篇 第1章 c#开发环境的使用 第2章 c#语言基础应用 第3章 字符串处理技术 第4章 数组和集合的使用 第5章 面向对象编程技术 第2篇 windows窗体篇 第7章 windows窗体基础 第8章 特色窗体界面 第9章 ...

    C#开发实战1200例+第1卷.part4

    第1篇 c#编程基础篇 第1章 c#开发环境的使用 第2章 c#语言基础应用 第3章 字符串处理技术 第4章 数组和集合的使用 第5章 面向对象编程技术 第2篇 windows窗体篇 第7章 windows窗体基础 第8章 特色窗体界面 第9章 ...

    C#开发实战1200例+第1卷.part6

    第1篇 c#编程基础篇 第1章 c#开发环境的使用 第2章 c#语言基础应用 第3章 字符串处理技术 第4章 数组和集合的使用 第5章 面向对象编程技术 第2篇 windows窗体篇 第7章 windows窗体基础 第8章 特色窗体界面 第9章 ...

Global site tag (gtag.js) - Google Analytics