第9章 位 运 算.

Slides:



Advertisements
Similar presentations
2016/8/3 海佃國小四年級生理衛教簡報 健康中心 2016/8/3 吾家有女〈男〉初長成.
Advertisements

数据结构的引入. 通讯录管理 社团机构管理 校园导航管理 通讯录管理 社团机构管理 校园导航管理.
电话: XXXXX 主讲: XXXXX 任务五 组织旅游线路. 本节任务:设计一条旅游线路 休闲度假天堂游 早烟台集合,乘车赴蓬莱,游览人间仙境 — 蓬莱阁风景区 ( 1.5 小时)、水城、古船馆、八仙群雕。 第一天 然后自由活动或自费游览:八仙渡海口风景区( 60 元自 理)海洋极地世界( 120.
《礼记 · 学记》学习心得报告 教育的本质与运用 主讲人:徐浩明. 一、认识什么是教育 二、明白教育的本质 三、如何落实德行教育.
2016 年温州市小学六年级教育质量 综合测评瑞安市考务培训 瑞安市教师发展中心
報告者:蕭曄鴻 班級:溫馨甲孝 指導教授:李開濟博士
兵 车 行 杜甫.
單元名稱: 健康的兩性交往.
成品成本计算 鞠传英.
机电设备概论 安全管理概述 XXXXX.
第2课 大一统与秦朝中央集权制度的确立 课标要求: 知道“始皇帝”的来历和郡县制建立的史实,了解中国古代中央集权制度的形成及其影响。
第十四篇 答李翊書 韓 愈.
史記 貨 殖 列 傳                                                            商业篇.
引導者的角色 組別:第5組 4A1I0003 劉芷媛 4A1I0004 陳安琪 4A1I0014 陳佳瑩 4A1I0046 葉倢茹
情緒與壓力管理─背部舒緩 指導老師:彭易璟 第六組組員:會資三乙 499A0047 謝宛霖 會資三乙 499A0019 吳汶諭
课题研究报告的撰写.
C/C++语言程序设计 第二章 数据类型和表达式 龚尚福,贾澎涛主编 《C/C++语言程序设计》 西安电子科技大学出版社.
基层违纪违法案件 查办的基本程序 基本要求和案例解析 学 思 践 悟 基层违纪违法案件 查办的基本程序 基本要求和案例解析 内蒙古纪委案件审理室 方瑛 2015年5月24日.
第1章 计算机基础知识 1.4 二进制数的运算及其加法电路 1.4.1二进制数据算术运算规则 (1) 加法运算规则
没有规矩,不成方圆。.
高考复习专题 文言文翻译
指導老師:楊淑娥 組別:第一組 成員:劉怡萱4a0i0066 吳珮瑜4a0i0070 林秋如4a0i0075 陳婉婷4a0i0076
組員:4A140013張瓊云 4A1I0039石宜芬 4A1I0909許峻綱 指導老師:王立杰老師
班级:XXXXXXXX 学生:XXXXXXXX 学号:XXXXXXXX 指导教师:XXXXX
微机原理与接口技术 大家好!.
第五课 小设计师.
食物在口腔里的变化.
酒 中国是一个 文化历史悠久的国家.
理解常见文言实词在文中的含义.
指導老師:陳韻如 班級:幼保二甲 姓名:林靜宜 學號:4A0I0033
杨玉环(公元719-756年) 杨玉环,名玉环,字太真,唐玄宗李隆基的宠妃,原名杨芙蓉(故有芙蓉出水),出生地为四川成都,祖籍山西永济。杨贵妃自小习音律,善歌舞,姿色超群。曾祖父杨汪是隋朝的上柱国、吏部尚书,唐初被李世民所杀,父杨玄琰(yǎn),是蜀州(四川崇州)司户,其叔父杨玄璬(jiǎo)曾任河南府士曹,杨玉环的童年是在四川度过的,10岁左右,父亲去世,她寄养在洛阳的三叔杨玄璬家。后来又迁往山西永乐(山西永济)。 
左迁至蓝关示侄孙湘 韩愈.
C语言实验 第一课 标题:学号+姓名.
科普说明文 生物入侵者 高天群.
文化底蕴与作文 第一节:底蕴成句 【温馨点拨】:底蕴成句是把含有文化底蕴的内容表达成句。底蕴成句有三种情况:
C语言程序设计 第十二章 位运算.
程序设计基础.
第三章 C语言基础 学习目标: 熟练掌握:C语言的基本数据类型、运算符及表达式 掌握:常见的输入、输出函数使用方法;
基础篇 基础知识 —C语言程序设计 学习目标 掌握C语言中三种常见的基本类型及其使用方法 掌握常见的算术运算符和表达式的使用
第2章 数据类型与数据运算.
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
C语言程序设计基础 刘新国.
第二章 Java语言基础.
第2章 数据类型、运算符和表达式.
JAVA 程式設計 資訊管理系 - 網路組.
認識多項式 1 多項式的加法 2 多項式的減法
第9章 位 运 算.
浙江长征职业技术学院-计算机应用系-相方莉制作
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
第九节 赋值运算符和赋值表达式.
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
第二章 类型、对象、运算符和表达式.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
C程序设计 实验二 数据类型、运算符和表达式 第6讲
第二章 Java基本语法 讲师:复凡.
程序设计基础A(C语言) 第一章 C语言概述 主讲教师: 许 康
第十二章 位运算.
Chap 6 数据类型和表达式 6.1 数据的存储和基本数据类型 6.2 常量和变量 6.3 数据的输入和输出 6.4 类型转换
§4 连续型随机变量.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
基本知识 数据类型、变量、常量、运算符.
第一章 微型计算机中的数据类型.
6.1.1 平方根.
Xxxxx市xxxxxxxx有限公司.
<编程达人入门课程> 本节内容 有符号数与无符号数 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
Presentation transcript:

第9章 位 运 算

目 录 位运算和位运算符 位运算举例 C语言程序设计 - 第9章 位运算

位运算 按二进制位进行运算 位运算的运算对象是二进制的位 位运算速度快,效率高,节省存储空间 只能对整型数据(包括字符型)进行位运算 负数以补码形式参与运算 注意与逻辑运算区别 C语言程序设计 - 第9章 位运算

位运算符 (Bitwise Operators) 名称 举例 优先级 ~ 按位取反 ~flag (高) (算术运算符) << 左移 a << 2 >> 右移 b >> 3 (关系运算符) & 按位与 flag & 0x37 ^ 按位异或 flag ^ 0xC4 | 按位或 flag | 0x5A (低) (赋值运算符) C语言程序设计 - 第9章 位运算

按位与 (Bitwise AND) 运算规则 用法 0 & 0 = 0; 0 & 1 = 0; 1 & 0 = 0; 1 & 1 = 1; 按位清零 保留某些指定位 C语言程序设计 - 第9章 位运算

按位与举例 运算举例 按位清零、保留 1010,1101 (0xAD) & 0110,1001 (0x69) xxxx,xxxx_____ & 0110,0010 (0x62) 0xx0,00x0_____ C语言程序设计 - 第9章 位运算

按位或 (Bitwise Inclusive OR) 运算规则 0 | 0 = 0; 0 | 1 = 1; 1 | 0 = 1; 1 | 1 = 1; 用法 按位置一 C语言程序设计 - 第9章 位运算

按位或举例 运算举例 按位置一 1010,1101 (0xAD) | 0110,1001 (0x69) 1110,1101 (0xED) xxxx,xxxx_____ | 0110,0010 (0x62) x11x,xx1x_____ C语言程序设计 - 第9章 位运算

按位异或 (Bitwise Exclusive OR, XOR) 运算规则 0 ^ 0 = 0; 0 ^ 1 = 1; 1 ^ 0 = 1; 1 ^ 1 = 0; 说明 相“异”则为1,相“同”则为0 相当于按位且无进位的加法 C语言程序设计 - 第9章 位运算

按位异或用法举例 特定位翻转 与0相异或,保持原值不变 与自身相异或,则全部位清零 交换两个整数值 1010,1101 (0xAD) 1100,0100 (0xC4) 与0相异或,保持原值不变 与自身相异或,则全部位清零 交换两个整数值 a=a^b; b=b^a; a=a^b; C语言程序设计 - 第9章 位运算

按位取反 (One's Complement) 运算规则 ~ 0 = 1; ~ 1 = 0; 用法 所有位翻转 获得适用于不同系统的位运算模板 C语言程序设计 - 第9章 位运算

按位取反举例 运算举例 位运算模板 ~ 1010,1101 (0xAD) 0101,0010 (0x52) 对一个int类型的整数最后四位清零 16位整数: a & 0xFFF0 32位整数: a & 0xFFFFFFF0 可以使用: a & ~(int)0xF C语言程序设计 - 第9章 位运算

左移 (Left Shift) 运算规则 用法 i << n 把i各位全部向左移动n位 最左端的n位被移出丢弃 运算速度比真正的乘法和幂运算快得多 C语言程序设计 - 第9章 位运算

左移举例 运算举例 溢出举例 1010,1101 << 3 (101)0110,1000_____ 若左移后的数据超出表示范围,则发生溢出 int i, j; i = 0x2431; j = i<<2; /* j=-0x6F3C, 溢出 */ j = i<<3; /* j= 0x2188, 溢出 */ C语言程序设计 - 第9章 位运算

右移 (Right Shift) 运算规则 用法 i >> n 把i各位全部向右移动n位 最右端的n位被移出丢弃 运算速度比真正的除法和幂运算快得多 C语言程序设计 - 第9章 位运算

右移举例 运算举例 逻辑右移和算术右移 0101,1101 >> 3 0000,1011(101) int i, j; i=-0x2431; j=i>>2; /* j=0x36F3, 逻辑右移 */ j=i>>2; /* j=0xF6F3, 算术右移 */ C语言程序设计 - 第9章 位运算

不同长度数据位运算规则 两个操作数右端对齐 短的数据左端用符号位补齐 正数或无符号数左端用0补满 负数左端用1补满 两个操作数长度相等后再运算 C语言程序设计 - 第9章 位运算

位运算举例 将16进制短整数按二进制打印输出 输入:F1E2 输出:1111000111100010 输入:13A5 输出:0001001110100101 C语言程序设计 - 第9章 位运算

例1:将16进制数按二进制输出 include <stdio.h> int main() { int i; short a; scanf("%X", &a); for (i=15;i>=0;i--) printf("%1d", a&1<<i?1:0); } C语言程序设计 - 第9章 位运算

结束 The End C语言程序设计 - 第9章 位运算