计算机二级新19讲
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.取反运算 (1)运算符
~
按位取反运算格式: (2) 按位取反运算格式: ~ 操作数 (3)按位取反运算规则 :是对一个二进制数按位取 反,即将0变为1,1变为0。例如: 即将0变为1 变为0 例如: a 的补码: 的补码: ~a 0000110010010011 1111001101101100
(1)按位左移运算符: << 按位左移运算符: (2)按位左移运算格式: 操作数<< <<移位数 (2)按位左移运算格式: 操作数<<移位数 按位左移运算格式 (3)按位左移运算规则: (3)按位左移运算规则:将一个操作数先转换成二 按位左移运算规则 进制数,然后将二进制数各位左移若干位, 进制数,然后将二进制数各位左移若干位,并在低 位补若干个0 高位左移后溢出,舍弃不起作用。 位补若干个0,高位左移后溢出,舍弃不起作用。 (4)按位左移运算用途: (4)按位左移运算用途:将乘以 2n 的幂运算处理 按位左移运算用途 为左移 n 位。 例如: 例如: 7<<2 按位左移表达式的值:28 按位左移表达式的值:
1
位 逻 辑 运 算
1. 位运算说明 位运算的操作数,只能是整型或字符型数据, ( 1 )位运算的操作数 , 只能是整型或字符型数据 , 不能为实型数据。 不能为实型数据。 ( 2 )位运算符中除按位取反“~”为单目运算符外, 位运算符中除按位取反“ 为单目运算符外, 为单目运算符外 其余均为二目运算符,即要求两侧各有一个运算量。 其余均为二目运算符,即要求两侧各有一个运算量。 ( 3 )参与运算时,操作数都必须首先转换成二进制 参与运算时, 形式,然后再执行相应的按位运算。 形式,然后再执行相应的按位运算。
3.按位或运算 按位或运算
(1)按位或运算符:¦ 按位或运算符: (2)按位或运算格式: 操作数 ¦ 操作数 按位或运算格式: (3)运算规则:参加运算的两个运算量之对应位,只要 运算规则:参加运算的两个运算量之对应位, 有一个为1 则该位的结果为1 有一个为1,则该位的结果为1。即: 0¦0=0 例如: 例如: ¦ 0¦1=1 1¦0=1 (060)8 (017)8 (077)8 1¦1=1 00110000 00001111 00111111
3
共 用 体
1.共用型概念 . 使几个不同的变量占用同一段内存空间的结构称为共 用型。 用型。 2.共用类型的定义 与结构类型的定义类似 .共用类型的定义──与结构类型的定义类似 union 共用类型名 { 成员列表 }; 3.共用变量的定义 与结构变量的定义类似 .共用变量的定义──与结构变量的定义类似 直接定义形式如下: 直接定义形式如下: union 共用体名 { 分量表 }变量表 ; 间接定义形式如下: 间接定义形式如下: union 共用体名 { 分量表 }; 变量表; union 共用体名 变量表;
2. 按位与运算符 按位与运算符: (1) 按位与运算符:& 按位与运算格式: (2) 按位与运算格式: 操作数 & 操作数 (3) 按位与运算规则 将 2 个操作数先转换成二进制数 ( 补码 ) , 当参加运 个操作数先转换成二进制数( 补码) 算的2个二进制数之对应位都为1 则该位的结果为1 算的2个二进制数之对应位都为1,则该位的结果为1,否 则为0 ,即: 则为0 0&0=0 0&1=0 1&0=0 1&1=1
(4)按位取反运算主要用途 按位取反运算主要用途是间接地构造一个数, 按位取反运算主要用途是间接地构造一个数,以增强 程序的可移植性。例如, 程序的可移植性。例如,通过求 ~ 0,可以间接地构造 一个各位全1的二进制数。 一个各位全1的二进制数。
14.2
1.按位左移运算 1.按位左移运算
位 移 位 运 算
(4) 按位与运算作用 例: 3&5=1 3的补码: 的补码: 的补码 5的补码: 的补码: 的补码 3&5 00000011 00000101 00000001
取一个数中的某些指定位清零如: 取一个数中的某些指定位清零如: a: b: a &b 0010110010101100 0000000011111111 0000000010101100 结果得到 a 的低 8 位 (377)8
的对应位相同,则该位的结果为0 否则为1 的对应位相同,则该位的结果为0。否则为1。即: 0∧0=0 0 ∧1 = 1 1∧0=1 1∧1=0
(4)运算的用途:使指定的位翻转 运算的用途: 如: ∧ 01111010 00001111 01110101 对应原数的低4位均置为 对应原数的低 位均置为1 位均置为 原数的低4位被翻转 原数的低 位被翻转
2.右移运算 右移运算
(1)按位右移运算符:>> 按位右移运算符: (2)按位右移运算格式 按位右移运算格式: 操作数>> >>移位数值 (2)按位右移运算格式: 操作数>>移位数值 (3)按位右移运算规则 按位右移运算规则: (3)按位ຫໍສະໝຸດ Baidu移运算规则:将一个操作数先转换成二进制 然后将二进制数各位右移若干位,移出的低位舍弃; 数,然后将二进制数各位右移若干位,移出的低位舍弃; 并在高位补位,补位分2种情况: 并在高位补位,补位分2种情况: 若为无符号数,右移时左边高位移入0 ① 若为无符号数,右移时左边高位移入0。 若为有符号数,如果原来符号位为0(正数) 0(正数 ② 若为有符号数,如果原来符号位为0(正数),则左 边补若干0 如果原来符号位为1 左边补若干1 边补若干0 ;如果原来符号位为1 ,左边补若干1如: a: 1001011111101101 (113755)8 算术右移 a>>1:1100101111110110 得145766
共用体与结构体的主要区别 占用空间是各成员所占空间之总和; (1)结构体变量 占用空间是各成员所占空间之总和; 占存储空间是各成员中所占空间最大者。 共用体变量 占存储空间是各成员中所占空间最大者。 各成员占用内存中一片连续的存储区, (2)结构体变量 各成员占用内存中一片连续的存储区, 各成员的地址互不相同; 各成员的地址互不相同;共用体变量各成员在内存中所占 空间的起始地址相同。 空间的起始地址相同。 (3)结构体变量的各个分量在任何时刻都同时存在, 结构体变量的各个分量在任何时刻都同时存在, 且可同时引用。 且可同时引用。共用体变量的各个分量在同一时刻只存在 其中一个,也只能引用其中的一个。 其中一个,也只能引用其中的一个。 (4)结构体变量可以初始化,共用体变量不能初始化。 结构体变量可以初始化,共用体变量不能初始化。
位数不同的位运算之间运算时: 1先将两个运算数右端对齐 2将位数短的运算数往高位扩充,即:无符号 数和正整数左侧用0不全,负数左侧用1补 全,然后对位数相等的两个运算数按位进 行运算
第15章 15章
位 运 算
教学要求: 教学要求:
掌握按位与运算、按位或运算、 掌握按位与运算、按位或运算、按位 异或运算、取反运算、左移运算、右 异或运算、取反运算、左移运算、 移运算的运算规则。 移运算的运算规则。
位运算就是指进行二进制位的运算。 提供的位运算有 提供的位运算有: 位运算就是指进行二进制位的运算。C提供的位运算有: 名称 运算符 名称 运算符 & 按位与 按位异或 ∧ ¦ << 按位或 左移 ~ >> 取反 右移
一个数与017进行按位或运算,可将该数的低4位全置为1; 进行按位或运算,可将该数的低 位全置为1 一个数与 进行按位或运算 进行按位或运算, 位全置为1。 与0377进行按位或运算,可将该数的低 位全置为 。 进行按位或运算 可将该数的低8位全置为
4. 异或运算 (1)运算符
∧
按位异或运算格式: 操作数∧ (2)按位异或运算格式: 操作数∧操作数 按位异或运算规则: (3)按位异或运算规则:参加运算的两个运算量