当前位置:首页 >> 计算机软件及应用 >>

C语言程序设计案例教程第12章 位运算


第12章 教学内容: 12.1 位逻辑运算 12.3 复合位运算 位 运 算 12.2 位移位运算 12.4 位段 教学要求: 1.掌握按位与运算、按位或运算、按位异或运算、 取反运算、左移运算、右移运算的运算规则。 2.掌握位段的应用。 为了节省内存空间,在系统软件中常将多个标志状 态简单地组合在一起,存储到一个字节(或字)中。C 语言 提供了实现将标志状态从标志字节中分离出来的位 运算功能。 C 既具有高级语言的特点,又具有低级语言的功能, 位运算能力就是其特色之一。 位运算就是指进行二进制位的运算。C提供的位运算 有: 名称 运算符 名称 运算符 按位与 按位或 取反 & ? ~ 按位异或 左移 右移 ? << >> 12.1 1. 位运算说明 位 逻 辑 运 算 ( 1 )位运算的操作数,只能是整型或字符型数据, 不能为实型数据。 (2 )位运算符中除按位取反“ ~”为单目运算符外, 其余均为二目运算符,即要求两侧各有一个运算量。 ( 3 )参与运算时,操作数都必须首先转换成二进制 形式,然后再执行相应的按位运算。 2. 按位与运算符 (1) 按位与运算符:& (2) 按位与运算格式: 操作数 & 操作数 (3) 按位与运算规则 将 2 个操作数先转换成二进制数(补码),当参加运 算的2个二进制数之对应位都为1,则该位的结果为1,否 则为0 ,即: 0&0=0 0&1=0 1&0=0 1&1=1 (4) 按位与运算作用 例: 3&5=1 3的补码: 5的补码: 3&5 00000011 00000101 00000001 取一个数中的某些指定位清零如: a: b: a &b 0010110010101100 0000000011111111 0000000010101100 结果得到 a 的低 8 位 (377)8 例12.1 编程对两个整型变量、整型常量分别进行按 位与运算,并输出它们的值。程序如下 main() { int x,y; x=25; y=568; printf(“x&y:%d\n”, x&y); printf(“3&14:%d\n”, 3&14); printf(“-3&14:%d\n”, -3&14); printf(“12&12:%d\n”, 12&12); } 运行结果: x&y: 24 3&14: 2 -3&14: 12 12&12: 12 3.按位或运算 (1)按位或运算符:? (2)按位或运算格式: 操作数 ? 操作数 (3)运算规则:参加运算的两个运算量之对应位,只要 有一个为1,则该位的结果为1。即: 0? 0=0 例如: 0? 1=1 1? 0=1 (060)8 (017)8 1? 1=1 00110000 00001111 ? 00111111 (077)8 一个数与017进行按位或运算,可将该数的低4位全置为1; 与0377进行按位或运算,可将该数的低8位全置为1。 4. 异或运算 (1)运算符 ? (2)按位异或运算格式: 操作数?操作数 (3)按位异或运算规则:参加运算的两个运算量 的对应位相同,则该位的结果为0。否则为1。即: 0?0=0 0 ?1 = 1 1?0=1 1?1=0 (4)运算的用途:使指定的位翻转 如: ? 01111010 00001111 01110101 对应原数的低4位均置为1 原数的低4位被翻转 5.取反运算 (1)运算符 ~ (2) 按位取反运算格式: ~ 操作数 (3)按位取反运算规则

相关文章:
c语言位运算编程题
c语言位运算编程题_计算机软件及应用_IT/计算机_专业资料。1. 取一个整数 a 从右端开始的 4~7 位。 参考答案 输出一个整数中由 8~11 位构成的数 参考...
C语言程序设计 位运算
C语言程序设计 位运算 - 选填,简要介绍文档的主要内容,方便文档被更多人浏览和下载。... C语言程序设计 位运算_IT/计算机_专业资料。选填,简要介绍文档的主要内容,...
C语言位运算符(附例题讲解)
C语言提供了六种位运算符: & 按位与 | 按位或 ^ 按位异或 ~ 取反 << 左移 >> 右移 12.1.1 按位与运算 按位与运算符"&"是双目运算符。其功能是...
c语言位运算符简介举例
所谓位运算是指进行进制位的运算。 C 语言提供的...将 c 与 b 进行按位或运算,即 c=c|b 程序如...16页 免费 C语言入门教程 434页 免费 ©...
c语言位运算
c语言位运算_其它_高等教育_教育专区。c语言位运算 C 语言位运算详解 位运算是指按进制进行的运算。在系统软件中,常常需要处理进制位的问题。C 语 言提供...
C语言详细笔记完美整理 第四部分 硬件操作和程序结构部...
第四部分 硬件操作和程序结构部分(指针、文件、函数、位运算)_IT/计算机_专业...C语言指针学习笔记 12页 免费 C语言程序设计 第4章 函... 83页 1下载券...
c语言第8章 编译预处理及位运算习题答案
c语言第8章 编译预处理及位运算习题答案 - 编译预处理习题 一.单项选择题 单项选择题 1. 在宏定义#define A) 单精度数 2. 以下叙述中正确的是 A)预处理...
C语言位运算符:与、或、异或、取反、左移和右移
C 语言提供的位运算符列表: 运算符 含义 描述 & 按位与 如果两个相应的进制位都为1,则该位的结果值为1,否则为0 | 按位或 两个相应的进制位中只要...
更多相关标签: