C程序设计第12章位运算例如.ppt
文本预览下载声明
C程序设计 第12章 位运算 * * 第8章位运算 教学目的与要求: 1.熟练掌握六种位运算符及其使用方法 2.了解位段的使用方法 基本内容 一、位运算符 二、位段 三、本章小结 前面介绍的各种运算都是以字节作为最基本单位进行的。 但在很多系统程序中常要求在位(bit)一级进行运算或处理。C语言提供了位运算的功能,这使得C语言也能像汇编语言一样用来编写系统程序。 所谓位运算是指进行二进制位的运算。在系统软件中,常要处理二进位的问题。C语言提供位运算的功能,与其它高级语言相比,显然具有很大的优越性。 结束 ???? C语言提供了六种位运算符: 按位与 | 按位或 ^ 按位异或 ~ 取反 左移 右移 说明: (1)位运算除取反运算外,均为二目(元)运算符。 (2)运算量只能是整型或字符型的数据,不能为实型数据。 一、位运算符 按位与运算符“”是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1,否则为0。参与运算的数以补码方式出现。 即: 00=0; 01=0; 10=0; 11=1 例如:95可写算式如下: (9的二进制补码) (5的二进制补码) (1的二进制补码) 可见95=1。 1.按位与运算符() 按位与的用途: 如果想将一个单元清零,只要让该单元的数与0进行进行与运算即可达到清零目的。若想取指定的某些位或保留某些位,只要让这些位与1进行与运算即可。 例如:把整数a(=517) 的高八位清 0 ,保留低八位,可作a255运算( 255 的二进制数为0000000011111111)。 0000001000000101 ()0000000011111111 —————————— 0000000000000101 (1)清零。 (2)取一个数中某些指定位。 (3)保留某些位。 按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的两个二进位有一个为1时,结果位就为1。 即: 0|0=0; 0|1=1; 1|0=1; 1|1=1 例如:9|5可写算式如下: (9的二进制补码) (| (5的二进制补码) —————————— (1的二进制补码) 可见9|5=13。 按位或运算常用来对一个数据的某些位定值为1。 2.按位或运算符(|) 按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。 即: 0^0=0; 0^1=1; 1^0=1; 1^1=0 例如:9^5可写算式如下: (9的二进制补码) (^ (5的二进制补码) —————————— (1的二进制补码) 可见9^5=12。 3.按位异或运算符(^) 例如:012^00=012 (^) ——————— 假如a=3,b=4。想将a和b的值互换,可以用以下赋值语句实现:a=a^b; b=b^a; a=a^b; 上面三个语句等效与以下两步: ?b=b^(a^b)=b^a^b=a^b^b=a^0(应用(2)) =a ?a=a^b=(a^b)^(b^a^b)=a^b^b^a^b=a^a^b^b^b=b 竖式说明如下: a=011 (^) b=100 ——————
显示全部