
《C语言程序设计》 立运算
《 C语言程序设计》

位运算 ●●● 位运算是指对二进制位进行的运算。每个二进 制位中只能存放0或1。因此,位运算就是对 二进制数的运算。通常,将一个数据用二进制 数表示后,最右边的二进制位称为最低位(第 0位),最左边的二进制位为最高位。 15 1413 1211 10 9 8 6 5 4 3 目标要求 讲课提纲 讲课内容 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 ◼ 位运算是指对二进制位进行的运算。每个二进 制位中只能存放0或1。因此,位运算就是对 二进制数的运算。通常,将一个数据用二进制 数表示后,最右边的二进制位称为最低位(第 0位),最左边的二进制位为最高位。 位运算 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

● ■在C语言中共提供了6种位运算符, 位运算符及其功能 运算符 含 义 优先级 单(双)目运算符 按位求反 2 (高) 单目(一元) 左移 > 右移 5 & 按位与 8 双目(二元) ∧ 按位异或 9 按位或 10 (低) 目标要求 讲课提纲 讲课内容 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 ◼ 在C语言中共提供了6种位运算符, 位运算符及其功能 (低) 10 ∧ 按位异或 9 | 按位或 & 按位与 8 双目(二元) 5 左移 右移 > 单目(一元) (高) ~ 按位求反 2 运算符 含 义 优 先 级 单(双)目运算符

在这6种位运算符中,其中按位取反是单目运 算符,只有一个运算对象,其他均为双目运算 符,有两个运算对象。 位运算的运算对象只能是整型(包括int short,long和unsigned)或字符型数据 而不能是实型数据。 各位运算符的优先级比较分散,与其他运算符 一起,其优先级从高到低如下: 逻辑非()→按位取反(~)→算术运算符→左移运 算符(>)→关系运算符→ 按位与运算符(&),按位异或运算符(A),按位 或运算符()→&&与‖→赋值运算符 目标要求 讲课提纲 讲课内容 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 ◼ 在这6种位运算符中,其中按位取反是单目运 算符,只有一个运算对象,其他均为双目运算 符,有两个运算对象。 ◼ 位运算的运算对象只能是整型(包括int, short,long和unsigned)或字符型数据, 而不能是实型数据。 ◼ 各位运算符的优先级比较分散,与其他运算符 一起,其优先级从高到低如下: 逻辑非(!)→按位取反(~)→算术运算符→左移运 算符(>)→关系运算符→ 按位与运算符(&),按位异或运算符(^),按位 或运算符(|)→&&与|| →赋值运算符

《求反》运算符(N】 ◆ 规则 对参与运算的数的各二进位按位求反,它是 单目运算符,具有右结合性。即:w0=1; 八1=0。 例如:~9的运算为 w0000000000001001 1111111111110110 目标要求 讲课提纲 讲课内容 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 “求反”运算符 (~) ◼ 规则 对参与运算的数的各二进位按位求反,它是 单目运算符,具有右结合性。即:~0=1; ~1=0。 例如:~9的运算为 ~ 0000000000001001 1111111111110110

《左移》运算符(<<) 规则 把“<<”左边的运算数的各二进位全部左 移若干位,由“<<”右边的数指定移动的 位数,高位丢弃,低位补0,它是双目运算 符。 左移1位相当于该数乘以2;左移n位相当 于该数乘以2n。 目标要求 讲课提纲 讲课内容 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 “左移”运算符(<<) ◼规则 把“<<”左边的运算数的各二进位全部左 移若干位,由“<<”右边的数指定移动的 位数,高位丢弃,低位补0,它是双目运算 符。 ◼左移1位相当于该数乘以2;左移n位相当 于该数乘以2n

《右移”运算符(>>) 规则 把“>>”左边的运算数的各二进位全部右 移若干位,“>>”右边的数指定移动的位 数。 右移1位相当于该数除以2;右移n位相当 于该数除以2n。 目标要求 讲课提纲 讲课内容 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 “右移”运算符(>>) ◼规则 把“>>”左边的运算数的各二进位全部右 移若干位, “>>”右边的数指定移动的位 数。 ◼右移1位相当于该数除以2;右移n位相当 于该数除以2n

《按位与”运算符 & 规则: 参与运算的两数(以补码方式出现)各对应的二 进位相与(即逻辑乘,它是双目运算符。即: 0&0=0:081=0:1&0=0;1&1=1。 9&5可写算式如下: 9的二进制: 00001001 5的二进制: &00000101 00000001(1的二进制) 可见9&5=1。 目标要求 讲课提纲 讲课内容 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 “按位与”运算符(&) ◼规则: 参与运算的两数(以补码方式出现)各对应的二 进位相与(即逻辑乘,它是双目运算符。即: 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

6按位与”运算符 (&) ● ■特殊用途: 清零 按位与运算通常用来对某些位清0。 ■取出数据中指定的位 目标要求 讲课提纲 饼课内容 课后作业 退出●
目标要求 讲课提纲 讲课内容 课后作业 退出 “按位与”运算符(&) ◼特殊用途: ◼清零 按位与运算通常用来对某些位清0。 ◼取出数据中指定的位

《按位或》运算符 规则 参与运算的两数(以补码出现)各对应的二进位 相或(即逻辑加)。它是双目运算符。即: 010=0:011=1;1|0=1;1|1=1。 例如:9|5可写算式如下: 00001001 100000101 00001101 (十进制为13) 可见9|5=13。 目标要求 讲课提纲 讲课内容 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 “按位或”运算符(|) ◼规则 参与运算的两数(以补码出现)各对应的二进位 相或(即逻辑加)。它是双目运算符。即: 0|0=0;0|1=1;1|0=1;1|1=1。 例如:9|5可写算式如下: 0 0 0 0 1 0 0 1 | 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 1 (十进制为13) 可见9|5=13