第九章位运算_第1页
第九章位运算_第2页
第九章位运算_第3页
第九章位运算_第4页
第九章位运算_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第九章位运算第1页,课件共13页,创作于2023年2月9.1

位运算的概念9.1.1计算机内数据的表示方法整数:占若干字节,存储该数的二进制补码最左端的位称为“最高位”,用作符号位,0表正,1表负最右端的位称为“最低位”,编号为0字符:占一个字节,存储该字符的ACCII码,以二进制表示第2页,课件共13页,创作于2023年2月9.2.2位运算及其运算符位运算:按二进制位进行的运算运算量:整型、字符型位运算符:~→算术→<<

、>>

→关系→&

→^

→|→&&→||→?:→赋值单、右双、左双、左第3页,课件共13页,创作于2023年2月9.2位运算9.2.1按位与(&)运算规则:0&0=0、0&1=0、1&0=0、1&1=1例:3&7

0000000000000011&00000000000001110000000000000011(3)

-3&-51111111111111101&11111111111110111111111111111001(-7)3&&7=1-3&&-5=1注:符号位也参与运算第4页,课件共13页,创作于2023年2月9.2.2按位或(|)运算规则:0|0=0、0|1=1、1|0=1、1|1=1例:3|7

0000000000000011|00000000000001110000000000000111(7)

-3|-51111111111111101

|11111111111110111111111111111111(-1)第5页,课件共13页,创作于2023年2月

9.2.3按位异或(^)运算规则:0^0=0、0^1=1、1^0=1、1^1=0例:3^7

0000000000000011^00000000000001110000000000000100(4)

-3^-51111111111111101

^11111111111110110000000000000110(6)第6页,课件共13页,创作于2023年2月9.2.4按位取反(~)运算规则:~0=1、~1=0例:~

-3~11111111111111010000000000000010(2)第7页,课件共13页,创作于2023年2月9.2.5左移(<<)运算规则:将各二进制位全部左移若干位移出的高位舍弃,右端低位补0例:a=15;a=a<<2;

0000000000001111(舍)000000000000111100(补)(a=60)9.2.6右移(>>)运算规则:将各二进制位全部右左移若干位移出的低位舍弃,左端高位:无符号数补0有符号数进行符号扩展例:a=15;a=a>>2;

0000000000001111(补)000000000000001111(舍)(a=3)注:左移n位相当于乘以2n

注:右移n位相当于除以2n取商

第8页,课件共13页,创作于2023年2月9.2.7位运算赋值运算

除按位取反运算外,位运算与赋值运算符可以组成复合赋值运算符:&=、|=、>>=、<<=、^=例:a&=b,等价于a=a&ba<<=2,等价于a=a<<2。第9页,课件共13页,创作于2023年2月注:不同长度的数据进行运算系统:将数据的右端对齐对长度短者,左侧:无符号数补0有符号数进行符号扩展例:longa=5;intb=3;a&b:将b与a的低16对齐对b的高16位进行符号扩展例:a=2,b=2a^7|b结果:7第10页,课件共13页,创作于2023年2月9.3位段简介9.3.1位段的概念与定义位段:对结构体中的某些成员以二进制位为单位分配内存称这样的成员为位段,或称位域。位段的类型:必须为unsignedint例:structpacked_data{unsigneda:2;unsignedb:6;unsignedc:4;unsignedd:4;}structpacked_datadata;第11页,课件共13页,创作于2023年2月说明:①位段成员的类型必须是unsigned或int类型

②位段的使用同结构体变量的成员例:data.a=2;data.b=25;位段赋值时要注意取值范围长度为n的位段,其取值范围为0~(2n-1);例:data.c的宽度为4,则它的数据范围为0~15(0000~1111)可以用%d、%u、%0和%x等格式字符,以整数形式输出位段第12页,课件共13页,创作于2023年2月③一个位段必须存储在同一个存储单元,不能跨两个存储单元。如果第一个存储单元空间不能容纳下一个位段,则该空间不用,而从下一个单元起存放该位段。④可以定义无名位段,表示相应空间不用,或定义长度为0的无名位段,表示下一个位段从下一个存储单元开始存放。例:structpacked_data{unsigneda:2;unsignedb

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论