C语言第11章位运算.ppt

上传人:max****ui 文档编号:6334244 上传时间:2020-02-23 格式:PPT 页数:21 大小:380.81KB
返回 下载 相关 举报
C语言第11章位运算.ppt_第1页
第1页 / 共21页
C语言第11章位运算.ppt_第2页
第2页 / 共21页
C语言第11章位运算.ppt_第3页
第3页 / 共21页
点击查看更多>>
资源描述
C语言第11章位运算 哈尔滨理工大学计算中心 Page2 二 八 十 十六进制换算表 Page3 位运算 计算机中的信息是以二进制0 1存储的每个0或1称为一个 位 bit 在C语言中提供了对二进制位 bit 的直接操作 使C具有了某些汇编语言才有的功能 Page4 位运算符 C语言的位运算符有以下几个 按位 与 按位 或 按位 异或 按位取反 右移 Page5 位运算符说明 位运算的对象只能是int或char位运算是对每一个二进制位分别进行操作 每个字节 byte 是8个二进制位 bit 以前所进行的所有变量操作均以字节为基本单位 为单目运算符 其他均为双目运算符按运算符优先级顺序由高到底排列为 优先级相同也可以使用如 或 等简写形式 Page6 按位与运算 与 运算的规则如下 a0011 b0101 a b0001 与 乘法 类似 Page7 与 运算举例 unsignedinta1 077 a2 0150 printf o a1 a1 0177即二进制的0000000000111111a2 0177即二进制的0000000001101000 0000000000101000 即八进制的050 Page8 按位或运算 或 运算的规则如下 a0011 b0101 a b0111 与 加法 类似 Page9 或 运算举例 unsignedchara1 0 x07 a2 0 xd0 printf x a1 a2 a1 0 x07即二进制的00000111a2 0 xd0即二进制的11100000 11100111 即十六进制的0 xd7 Page10 按位异或运算 异或 运算的规则如下 a0011 b0101 a b0110 a b值相异结果为1 否则结果为0 Page11 异或 运算举例 unsignedchara1 0 x20 a2 0 x35 printf x a1 a2 a1 0 x07即二进制的00100000a2 0 xd0即二进制的00110101 00010101 即十六进制的0 x15 Page12 按位取反运算 取反 运算的规则如下 a01 a10 1 变成 0 0 变成 1 Page13 取反 运算举例 unsignedchara1 0 x20 printf x a1 a1 0 x07即二进制的00100000 11011111 即十六进制的0 xdf Page14 左移运算 左移 运算的格式如下 表达式1 表达工2表达式1为移位的对象 表达式2为移位的位数左移后 右边的空位补 0 左移一位相当于将操作数乘以2 Page15 左移运算举例 unsignedchara1 0 x12 printf x a1 3 a1 0 x07即二进制的00010010 3左移三位后变为 00010010000 即十六进制的0 x90 舍掉 补0 Page16 右移运算 右移 运算的格式如下 表达式1 表达工2表达式1为移位的对象 表达式2为移位的位数对于无符号数 右移后 左边的空位补 0 对于带符号数 若符号位为0 右移后 左边的空位补 0 若符号位为1 右移后 左边的空位补 0 或补 1 随计算机系统不同 补 0 的称为逻辑右移 补 1 的称为算术右移 Page17 右移运算举例 unsignedchara1 0 x12 printf x a1 3 a1 0 x07即二进制的00010010 3右移三位后变为 00000010010 即十六进制的0 x02 舍掉 补0 Page18 位运算应用举例 取一整数从右端开始的4 7位 Page19 位运算应用举例 续 低4位为1 其余为0的数 整个程序的表达式为 a 4 0 4 Page20 位域 bitfield C语言允许在一个结构体中以位为单位来指定其成员所占内存的长度 称为位域 bitfield 例 structpacked data unsigneda 2 unsignedb 6 unsignedc 4 unsignedd 4 inti data 此时 变量data的各个成员中 a b c d分别占2位 6位 4位 4位 i占16位 整个data占的空间为4bytes当位域成员所占空间不足一个字节时 系统自动将空余部分闲置不用 Page21 位域说明 位域成员的类型只能为unsigned或int在存储单元中 位域的分配方式因机器而异 可不关心位域可当做整型变量使用 但要注意位域表示数值的范围 如两位二进制的范围为0 3 三位二进制的范围为0 7不能定义位域数组位域可按整型量的形式加参运算或赋值 输出
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!