《C语言(C++)程序设计》第8章 位运算

第8章算 本章导读 本章是初学C语言者的一大难点。属较髙要求,适合于编写系统 据言程设计 软件的需要。读者应在掌握了讣算机的几种基本数值编码的基础 上,开始本章的学习。通过本章的学习我们将近一步体会到C语 言既具有髙级语言的特点,又具有低级语言的功能,它能直接对 计算机的硬件进行操作,因而它具有广泛的用途和很强的生命力。 中本章主要知识点 (1)位运算符的含义及使用 60 (2)位运算的特殊应用 (3)位复合赋值运算符的含义及使用 (4)位段的定义、位段变量的说明及引用 环 境 回本书目
本章导读 本章是初学C语言者的一大难点,属较高要求,适合于编写系统 软件的需要。读者应在掌握了计算机的几种基本数值编码的基础 上,开始本章的学习。通过本章的学习我们将近一步体会到C语 言既具有高级语言的特点,又具有低级语言的功能,它能直接对 计算机的硬件进行操作,因而它具有广泛的用途和很强的生命力。 《 C 语 言 程 序 设 计 》(Visual C++ .6 0 环 境 ) 返回本书目录 第8章 位运算 本章主要知识点 (1) 位运算符的含义及使用 (2) 位运算的特殊应用 (3) 位复合赋值运算符的含义及使用 (4) 位段的定义、位段变量的说明及引用

第8章运算 8.1笕运算的C程序奥例 据言程设计 8.2二选制位运算 8.3位段 60 8.4缭合奧训 环 境 返回本章导读
第8章 位运算 《 C 语 言 程 序 设 计 》(Visual C++ .6 0 环 境 ) 返回本章导读 8.1 位运算的C程序实例 8.2 二进制位运算 8.3 位段 8.4 综合实训

8.1t运犷的C程序实例 悟言程序设 (例8.1 从结果可以看出,在这个程序中出现的几种运算符显然不同于以 计前,它们不是两个十进制数值之间简单的运算,而是十进制数对 应的二进制“位”的运算 60 环 境
《 C 语 言 程 序 设 计 》(Visual C++ .6 0 环 境 ) 返回本章目录 8.1 位运算的C程序实例 【例8.1】 从结果可以看出,在这个程序中出现的几种运算符显然不同于以 前,它们不是两个十进制数值之间简单的运算,而是十进制数对 应的二进制“位”的运算

例8.1】实例 门【例81】编写程序完成对两个整型量进行按位逻辑运算。 程序名为8_1cpp 语|# include" stdio. h 运行情况为: maino input the numbers:输入:9,5<CR 程 i int a, b 序 i% printf("input the e numbers 计 scanf(%d%"&a&kb) printf("odn"akb)殚输出按位与结果*/65526 printf("%\n"2b),/*输出按位或结果* printf( %od n", a'b/,输出按位异或结果 6 printf("auin-a)/输出a的按位取反结果* 程序演刁 环 境 区回本节目录
【例8.1】实例 《 C 语 言 程 序 设 计 》(Visual C++ .6 0 环 境 ) 返回本节目录 程序演示 【例8.1】编写程序完成对两个整型量进行按位逻辑运算。 程序名为l8_1.cpp。 #include "stdio.h" main() { int a,b; printf("input the numbers: "); scanf("%d,%d",&a,&b); printf("%d\n",a&b); /*输出按位与结果*/ printf("%d\n",a|b); /*输出按位或结果*/ printf("%d\n",a^b); /*输出按位异或结果*/ printf("%u\n",~a); /*输出 a的按位取反结果*/ } 运行情况为: input the numbers: 输入:9,5 1 13 12 65526

例8.1程序渡示 八181-创天中文v++-[Lt8-1.c] 文件编查看 181 回区 凸回创厂画习幽酬血A阪 input the number [Globals) Press any key to continue 田81c!ass 弹出运行 结果窗口 Classview自 输入源程序 →编译人调试λ查找文件1入查找文件2入结果Ⅻ」 Read 返回例题 巡回本节日录
[例8.1]程序演示 输入源程序 弹出运行 结果窗口 返回例题 返回本节目录

82二选侧 所谓位运算是指进行二进制位的运算。在系统软件中,常要处理二 进制位的问题。C语言提供了按位运算的功能,这使得它与其它高级 语言相比,具有很强的优越性 序设计 8.2.1二进制位运 8.2.2笕复合赋值运犷符 60 环 境
《 C 语 言 程 序 设 计 》(Visual C++ .6 0 环 境 ) 返回本章目录 8.2 二进制位运算 8.2.1 二进制位运算 8.2.2 位复合赋值运算符 所谓位运算是指进行二进制位的运算。在系统软件中,常要处理二 进制位的问题。C语言提供了按位运算的功能,这使得它与其它高级 语言相比,具有很强的优越性

8.2.1二进侧笕箕 「c语言提供了六种位运算符(见表81): 表8-1位逻辑运算与移位运算 类型 运算符 含义 程 序 按位与 位逻辑 按位或 按位异或 运算符 取反 白 移位运 << 左移 算符 右移 环 境 返回本节目
《 C 语 言 程 序 设 计 》(Visual C++ .6 0 环 境 ) 8.2.1 二进制位运算 类 型 运算符 含义 位逻辑 运算符 & 按位与 | 按位或 ^ 按位异或 ~ 取反 移位运 算 符 > 右移 C语言提供了六种位运算符(见表8-1): 表8-1位逻辑运算与移位运算 返回本节目录

8.2.1二进侧笕箕 说明: ①运算量只能是整型或字符型的数据,不能为实型或结构体等类型的数据。 ②六个位运算符的优先级由高到低依次为:取反、左移和右移、按位与、 按位异或、按位或 程 8两个不同长度的数据进行位运算时,系统会将二者按右端对齐。下面对 做|各种位运算符介绍如下: 1.“按与”运算符(&) 4.“求反”运算待() 2.“按位或”运算符() 5.“左移”运算待() 环 境 返回本节目录
《 C 语 言 程 序 设 计 》(Visual C++ .6 0 环 境 ) 8.2.1 二进制位运算 说明: ①运算量只能是整型或字符型的数据,不能为实型或结构体等类型的数据。 ②六个位运算符的优先级由高到低依次为:取反、左移和右移、按位与、 按位异或、按位或。 ③两个不同长度的数据进行位运算时,系统会将二者按右端对齐。下面对 各种位运算符介绍如下: 返回本节目录 1.“按位与”运算符(&) 2.“按位或”运算符(|) 3.“按位异或”运算符(^) 4.“求反”运算符(~) 5.“左移”运算符(>)

1.“按位与”运算(&) (1)规则: e参与运算的两数(以补码方式出现)各对应的二进位相与(即逻辑乘), 悟只有对应的两个二进位均为时,结果位才为1,否则为0,它是双目运算符。 富即:0&0=0:0&1=0:180=0:1&1=1。 程例如: 序 做|%5可写算式如下: 计9的二进制补码:00001001 5的二进制补码:00000101 白 00000001(1的二进制补码) 6可见9&5=1。 环 境 返回8.2.1目录
《 C 语 言 程 序 设 计 》(Visual C++ .6 0 环 境 ) 1.“按位与”运算符(&) (1)规则: 参与运算的两数(以补码方式出现)各对应的二进位相与(即逻辑乘), 只有对应的两个二进位均为1时,结果位才为1,否则为0,它是双目运算符。 即:0&0=0;0&1=0;1&0=0;1&1=1。 例如: 9&5可写算式如下: 9的二进制补码: 0 0 0 0 1 0 0 1 5的二进制补码: 0 0 0 0 0 1 0 1 & ___________________ 0 0 0 0 0 0 0 1(1的二进制补码) 可见9&5=1。 返回8.2.1目录

1.“按位与”运算(&) 2)特殊用途: ①清零 言|授位与运算通常用来对某些位清0。由按位与的规则可知:为了使某数的指 定位清零,可将该数按位与一特定数。该数中为1的位,特定数中相应位应 程|为:该数中为0的位,特定数中相应位可以为也可以为1。由此可见,能 序|对某一个数的指定位清零的数并不唯一。【例82 补/②取一个数中某些位 可将该数与一个特定数进行&运算,对于要取的那些位,特定数中相应的 3位设为1。例831 ③取出数中某一位 白 要相将一个数的某一位保留下来,可将该数与一个特定数进行&运算,特 6定数的相对应的那位应为1。【例84 环 境 返回本节目录
《 C 语 言 程 序 设 计 》(Visual C++ .6 0 环 境 ) 1.“按位与”运算符(&) (2)特殊用途: ①清零 按位与运算通常用来对某些位清0。由按位与的规则可知:为了使某数的指 定位清零,可将该数按位与一特定数。该数中为1的位,特定数中相应位应 为0;该数中为0的位,特定数中相应位可以为0也可以为1。由此可见,能 对某一个数的指定位清零的数并不唯一。【例8.2】 ②取一个数中某些位 可将该数与一个特定数进行&运算,对于要取的那些位,特定数中相应的 位设为1。【例8.3】 ③取出数中某一位 要相将一个数的某一位保留下来,可将该数与一个特定数进行&运算,特 定数的相对应的那位应为1。【例8.4】 返回本节目录
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C语言(C++)程序设计》第7章 结构体、联合体和枚举类型.ppt
- 《C语言(C++)程序设计》第6章 指针和引用.ppt
- 《C语言(C++)程序设计》第5章 函数与预处理.ppt
- 《C语言(C++)程序设计》第4章 数组.ppt
- 《C语言(C++)程序设计》第3章 结构化程序设计.ppt
- 《C语言(C++)程序设计》第2章 数据类型及表达式.ppt
- 《C语言(C++)程序设计》第1章 C语言绪论第1章.ppt
- 《C语言(C++)程序设计》第10章 C++面向对象程序设计.ppt
- 《微机原理与接口技术》课程教学资源(PPT课件)目录二.ppt
- 《微机原理与接口技术》课程教学资源(PPT课件)目录一.pps
- 《微机原理与接口技术》课程教学资源(PPT课件)第四章 半导体存储器.ppt
- 《微机原理与接口技术》课程教学资源(PPT课件)第十章 数/模与模/数接口技术.ppt
- 《微机原理与接口技术》课程教学资源(PPT课件)第十二章 从8086到 pentiumⅡ.ppt
- 《微机原理与接口技术》课程教学资源(PPT课件)第十一章 微机最小系统与监控程序.ppt
- 《微机原理与接口技术》课程教学资源(PPT课件)第六章 汇编语言程序设计.ppt
- 《微机原理与接口技术》课程教学资源(PPT课件)第八章 输入/输出及中断系统.ppt
- 《微机原理与接口技术》课程教学资源(PPT课件)第五章 8086的寻址方式和指令系统.ppt
- 《微机原理与接口技术》课程教学资源(PPT课件)第二章 运算基础.ppt
- 《微机原理与接口技术》课程教学资源(PPT课件)第九章 输入输出接口技术.ppt
- 《微机原理与接口技术》课程教学资源(PPT课件)第三章 微处理器的结构.ppt
- 《C语言(C++)程序设计》第9章 文件.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第八章 汇编语言基础.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第二章 运算器.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第九章 顺序程序设计.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第六章 外部设备.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第七章 学习机简介.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第三章 指令系统.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第十二章 子程序设计.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第十三章 高级宏汇编语言.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第十四章 现代计算机技术.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第十一章 循环程序设计.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第十章 分支程序设计.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第四章 控制器.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第五章 存储体系结构.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第一章 计算机系统概论.ppt
- 《AUTOCAD 2007教程》课程教学课件(PPT讲稿,共十章).ppt
- 湖南省第二届“软考杯”大学生程序设计大赛试题.pdf
- 湖南省首届“湘邮科技杯”大学生程序设计大赛试题.pdf
- 21世纪高等院校规划教材:《数据库基础―Access2003 应用教程》第三章 查询.ppt
- 21世纪高等院校规划教材:《数据库基础―Access2003 应用教程》第二章 建立数据库.ppt