- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言位操作 2009/12/16
TOC \o "1-3" \h \z \u 一、位的概念 2
二、位逻辑运算符 2
1、 & 操作符 3
(1)清除位:设置某位为0,而其他位保持不变。 3
(2)检测位 3
(3)保留变量的某一位 3
(4)与操作运算: 3
2、| 操作符 4
3、^ 操作符 4
(1)翻转某一位 4
(2)保留原值 5
(3)交换两个变量的值,而不用临时变量 5
4、 ~ 操作符 6
(1)设定某些位为0,其他的位为1,而不管这个数据的大小。 6
(2)联合使用&操作符确保某些位一定被置0: 7
三、位移运算符 8
1、左移运算符 8
2、 右移运算符 9
五、位运算赋值运算符 10
六、 不同长度的数据进行位运算 11
七、位域 11
八、c语言位操作的一些注意事项 12
1. 位操作尽量使用unsigned char 12
2. 每次操作最好用括号括起来,不要随意猜想其算术优先级 15
C语言是一种中级语言,能对计算机硬件直接操作,这就涉及到位的概念。十六进制使用四个二进制位来表示从0到15的数字,这些数字也是单个的十六进制阿拉伯数字所能表示的范围。由四个二进制位或一个BYTE的一半组成的组被称为一个元组。一个BYTE包含两个元组,所以我们可以使用两个十六进制阿拉伯数字来表示一个BYTE类型的值。
一、位的概念
我们知道,在计算机中,一字节占8位(现在的某些电脑也有占16位的),这样表示的数的范围为0-255,也11111111。位就是里面的0和1。
char c=100;
实际上c应该正好是64H。其中高位在前,低位在后。
二、位逻辑运算符
符号
描述
运算规则
&
位逻辑与
两个位都为1时,结果为1,否则为0;
|
位逻辑或
两个位都为0时,结果为0,否则为1;
^
位逻辑异或
当两个位相同时,结果为0,否则为1;
~
取反
当为1时结果为0,当为0时,结果为1
表中除去最后一个运算符是单目运算符,其他都是双目运算符。这些运算符只能用于整型表达式。位逻辑运算符通常用于对整型变量进行位的设置、清零、取反、以及对某些选定的位进行检测。在程序中一般被程序员用来作为开关标志。较低层次的硬件设备驱动程序,经常需要对输入输出设备进行位操作。
1、 & 操作符
这个操作符理想的应用是建立一个掩码来检查某个位的值。
(1)清除位:设置某位为0,而其他位保持不变。
c=c&0xBF;
这样c以后,总能使第6位为0,其他位保持不变。
a=0xfe; //a=0b
a=a&0x55;//使变量a的第1位、第3位、第5位、第7位清零 a= 0b
(2)检测位
要知道一个变量中某一位是‘1’还是‘0’,可以使用与操作来实现。
a=0xf5; //a=0b
result=a&0x08; //检测a的第三位,result=0
(3)保留变量的某一位
要屏蔽某一个变量的其它位,而保留某些位,也可以使用与操作来实现。
a=0x55; //a=0b
a=a&0x0f; //将高四位清零,而保留低四位 a=0x05
(4)与操作运算:
那么如果参加运算的两个数为负数,又该如何算呢?会以其补码形式表示的二进制数来与运算。a=-5&-3; //a=(0b 1011) & (0b1101) =0b 1001 =-7
2、| 操作符
设置位:设置某位为1,而其他位保持不变,可以使用位逻辑或运算。
这个操作符的理想应用是确保某个位被设置。假设我们想某个值的位3一定被设置:
BYTE b = 50;
BYTE c = b | 0x04;
cout << "c = " << c << endl;
这会发生如下的计算:
b
|
==result
3、^ 操作符
异或运算符^又被称为XOR运算符,比较两个数,只有这两个数的相应位标志不同时,返回数的相应位才会被设置1。
异或运算主要有以下几种应用:
(1)翻转某一位
当一个位与‘1’作异或运算时结果就为此位翻转后的值。如下例:
a=0x35; //a=0
a=a^0x0f; //a=0a的低
1亿VIP精品文档
相关文档
最近下载
- 07FJ02_防空地下室建筑构造_标准图集.pdf
- 《请到我的家乡来》课件(共55张PPT)-道德与法治三年级下册课件.pptx
- 美丽中国2023第五届全国国家版图知识竞赛题库及答案(70题).docx VIP
- 在线网课学习课堂《医学英语(EMP)( 安徽医科大)》单元测试考核答案.docx
- 农博会外包服务项目投标方案(技术方案).docx
- 2024年济南市2024届高三高考二模物理试题卷(含答案).pdf
- 2023武汉市新初一分班语文试卷含答案.doc VIP
- 环境化学戴树桂第二版课后答案(最新整理版).pdf
- 2023年新高考化学真题-化学实验(选择题)含答案.pdf VIP
- 单片机控制的智能门锁设计.docx VIP
文档评论(0)